1. There's a binary representation that corresponds bit-for-LCD segment but this doesn't appear to work at all amd I've given up on this idea
If you're directly talking to a PCF8578 then it should be this. Each bit in its internal memory is mapped to a LCD segment. You don't need to send the entire RAM contents each time though so you can jump to specific sections of RAM and skip parts that haven't changed. Your dump has everything merged into one long sequence so it is difficult to determine what are commands and what is data.
First 5 bytes are a valid initialisation sequence for the PCF8578. Columns 0 to 7 are mentioned in the datasheet as being scratchpad RAM so setting it to 8 would be correct.
D5 = Set-mode - Mixed mode, normal, 1:8 mux (8 rows)
FC = Set-start-bank - Bank 0
E0 = Device-select - Hardware subaddress 0
F0 = RAM-access - Character mode, row 0
08 = Load-X-address - Column 8