Es que ya no puede cumplir con la velocidad de comunicacion predeterminada del Bus SPI!!!
Lo de la temporizacion del led era solo para que veas que funciona, no para que lo dejes en el programa!!
Acostumbrate a la idea que cuando manejas comunicaciones por algun bus de datos, sea SPI, I2C, Can o cualquier otro, debes RESPETARSE las velocidades o nada va a funcionar.
Para darte una idea, el bus SPI puede llegar a velocidades de hasta 1 megabit por segundo.
Dime como verias aun con osciloscopio cuanto de bien o mal anda ese bus, salvo que dispongas de un osciloscopio especializado en comunicaciones.
Saca el manejo de ese led de alli, de otra forma no funcionara nada.
Te recomiendo que compres o te armes un debugger ICD, podria ser el ICDs-40 o el ICDU-40 que andan los circuitos por el foro, usa el buscador y lo encontraras.
Si tienes 2 pines libres del pic, deberias conectarlos a un port serie a traves de un MAX232 y hacer debug utilizandolos, solo recibirias lo que esta pasando en el bus y que va y que viene en el, mirandolo en pantalla.
Si utilizaras la libreria original de CCS podrias aprender a usarlo y luego recien podrias aprender a hacer la tuya.
Si no estableces una comunicacion por CAN estable dudo que aprendas a utilizarla y mas aun dudo que tengas exito en tu primer intento.
En este hilo hubo un usuario (Electrolinux) que estuvo haciendo su propia libreria para el compilador GCC, podrias buscar esa documentacion y utilizarla, incluso tradujo todo al español.