The cause might be that the ss-line is not kept active throughout a multi-byte write. You wait for the byte transmitted which will release the ss line when done. As a test I would suggest to define your own pin as ss-line, remove the hardware connection and set it with SS_Pin_Write() to the desired level (active low) when a transaction starts or ends.
If I use the SendArray() function the SS remains low. However, the only data I ever get back is identical to the data sent, just like an echo, with no parameter information that should be returning. Any idea what this might indicate? The miso and mosi pins are not crossed or shorted.