Ob die SPI-Hardware des AVR den 595 ansteuern kann, weiß ich nicht. Auf
jeden Fall ist der 595 nur ein simples serielles Schieberegister, bei
dem ausgangsseitig ein paar Besonderheiten zu beachten sind. Es gibt
einen Freigabeeingang, mit dem die Ausgänge aktiviert werden und ein
Steuereingang für das Ausgangslatch. Damit kann man nach erfolgtem
Schieben den Inhalt des SR an die Ausgänge schicken. Diese Lösung
verhindert, dass die Ausgangspins während des Schiebens undefinierte
Zustände einnehmen.
Ich vermut, dass dort dein Problem liegt, denn falls die Kommunikation
mit den Controller nicht sauber läuft, würde zumindest irgendwas bei den
LEDs passieren.