ShiftOut vs. digitalWrite

Du speicherst anscheinend jedes Bit als ein Byte. Nimm statt dessen für jeden Zustand auch wirklich nur ein Bit in einem Byte. Also für 8 LEDs ein Byte. Dann passt es.

Geht z.B. mit bitWrite:
https://www.arduino.cc/en/Reference/BitWrite