Vielleicht siehst du noch was.
Schau dir mal die Zeile 3 an, hier sind wahrscheinlich zwei Fehler.
Ich denke der PCF8574 hat einen Adressbereich von 0x20 bis 0x27. Das ist eine 7bit Adresse, die musst du hier auch angeben, keine 8Bit Adresse (mit Schreib/Lese Bit).
Der zweite Fehler in der Zeile 3: du gibst die Adresse dezimal an, nicht hexadezimal, das 0x fehlt.
Ich vermute, du hast A0 Adressbit auf 1, alles andere auf 0.
Dann wäre die 7bit I2C Adresse 0x21
Weiter habe ich deinen Code nicht angeschaut, korrigiere erst mal die Adresse und probiere es aus.