Arduino CAN SPI Configuration problem
In SPI protocol you'll need to read the SPI buffer twice because the data you wrote will be read by the IC and the IC will respond to it in the next communication and that's when you know. 

Also, by looking at the message, I see that your IC is working fine, but is your CAN bus initialised properly? I'm a FSAE team member and I've faced this issue with the CAN Bus termination resistances and the ODB-II configuration on the Sparkfun CAN Bus shield. 

Also, have you tried any other libraries for the CAN Shield? For me the seeedstudio library of their CAN shield worked very well.