I don't really see any serious flaw with your test code.
So how have you connected the '595s together? You chained them serially, right? The serial out of the first shiftregister, to serial in on the next, etc. But having common clock and latch.
Maybe you have tristated or reset two of them?
The 595 is pretty quick, you can just latch it high then low immediately after, especially using digitalWrite().
No it's not you left off lots of stuff where you might have gone wrong like the power supplies.
If the last shift register is working and they are actually chained then data is flowing through the other two but not appearing on the output. This could be that output enable is not wired up right or the shift / load is not wired right.
So the red is the first byte you sent out? That ends up in the last shift register.