Nach stundenlangen Rumprobieren hab ich den Fehler endlich entdeckt.

Und zwar hatte ich zum Berechnen der Adresse der Daten für den HIGH Teil des Z-Registers einfach eine NULL gebraucht. Dazu hab ich einfach ein freies Register genommen und da ja dort anfangs sowieso ne NULL drin steht, hab ich an diesem Register auch nichts geändert.
Genau da war der Fehler.

Denn nach dem Abziehen des ISP-Kabels und anschließender Spannungsunterbrechung war eben in diesem Register keine NULL mehr drin, sodass der Z-Pointer nach der Berechnug ins Nirvana gezeigt hat.

Jetzt lösche ich dieses Register in meiner Reset-Routine am Anfang des Programms und es funktioniert. \/


Nochmal danke für die Antworten, auch wenn sie in meinem Fall leider nichts genützt haben.