I have started a bit of prototyping myself. Like your design, I am using a PCF8574 to expand the number of I/Os. Regarding SD card, one technical issue I encountered is that if you use the default CS (chip select pin), that would be ESP8266’s GPIO15, but the boot sequence requires GPIO15 to be pulled low at start-up, and that contradicts with SD card requirement, which is that CS pin must be pulled up to disable SD card operation. So you will need to use a different GPIO pin as CS pin. Not sure if this is the same issue as you encountered, but just a tip.