Zum PCF allgemein:
Auf die Ausgänge eine 1 schreiben, damit sie als Eingänge nutzbar werden
(Open Collector-Transistor sperrt).
Pullups/Pulldowns nicht vergessen an der Matrix.
Außerdem, auch eine nette Stolperfalle, nach Senden der
Slave-Adresse+Read-Bit, um die Daten auszulesen: Im Controller kein ACK
auslösen, da es nur ein Datenbyte gibt. Sprich ein No-Ack-Read.
Ansonsten kann ich ein CD4021 empfehlen. Ist günstiger als diese
Portexpander, wenn man die Ausgangsfunktion nicht braucht und nur
einlesen will... nur halt über SPI statt I2C.