Auch wenn es eigentlich eine Selbstverständlichkeit ist, erwähne ich es grade nochmal, weil es sich gerne mal als Fehler einschleicht:
Kehrst du aus allen CALLs auch mit RET zurück - oder hast du vielleicht irgendwo ein GOTO drinnen stehen?
Bernhards Idee mit dem Stack-Overflow klingt recht gut - eine der wenigen Möglichkeiten nen PIC abzuschießen - abgesehen von nem Zeigerüberlauf, so dass du bei 0000h landest.
Hast du ein ICD zum debuggen? Damit kannst du auch die Stacktiefe überwachen, wäre hier vielleicht ganz sinnvoll.

Funktioniert wärend der kurzen Zeit denn die SPI-Kommunikation?

MfG
Stefan