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().
digitalWrite(LATCH_PIN, HIGH); digitalWrite(LATCH_PIN, LOW);