dsPIC33, SPI slave, and Timer1 interrupts. What happens?
Normally you would set up the SPI peripheral once, then leave it on.  The extra handshaking you are doing is preventing you from using the hardware to its full capability.  Also doing a busy wait for the master to assert slave select is a bad idea if you ever want the processor to do something else.

Since you are transferring 16 bits of less per message, I would just let the hardware take care of it.  Then you can monitor the SPI interrupt flag to determine when new data has been received from the master.  If you need to slow down the master for flow control reasons, I would do that outside of the SPI message.  I suspect the interrupt is adding latency to your home grown handshaking scheme, and something somewhere isn't quite right and can't tolerate that latency.  That's assuming of course that the interrupt doesn't try to touch the SPI hardware or any of its I/O lines.