Yendo al tema que te tiene preocupado:
Creo que tienes dos problemas...
// ******************** CONFIGURACION OSCILADOR INTERNO *******************//
// Con esta configuracion no sera necesario instalar oscilador externo, de //
// este modo ganaremos un par RA6 y RA7 I/O pag 27 manual 18F2580 //
OSCTUNE = 0x8F; // OSCILADOR ineterno a maxima frecuencia 8Mhz Pag 27
OSCCON = 0xFF; // Pag 30
Estas tratando de llevar el PIC a trabajar con el BUS CAN a 500 KBPS y con el oscilador interno!!
Si mal no recuerdo ese oscilador no llega ni siquiera a la precisión de un oscilador integrado!!
Encima a 8 MHz la variación del oscilador se nota mucho mas, por lo tanto, para evitar esto te propongo que coloques un cristal externo de 8 MHz y sus capacitores de 20 pF , tal como veras en los circuitos que utiliza MikroC para sus nodos CAN.
Cuando se usan osciladores de baja velocidad y una rata de velocidad del BUS alta, el protocolo CAN basa su efectividad en la capacidad de resincronizar a sus nodos a traves del bit de sincronismo, para ello se incrementa al maximo la ventana de tiempo en que se permite encontrar dicho bit, ese segmento se llama SJW.
Para la tasa que quieres lograr nunca podra ser mayor a 2.
//CANInitialize(1,1,3,3,1,aa); // initialize CAN
CANInitialize(0,1,1,2,1,aa); // initialize CAN
Aquí has cometido el pecado de retocar los valores prefijados de fábrica (léase MikroC) para configurar la velocidad del Nodo CAN, seguramente lo has hecho en tu desesperación por que funcionara, pero aunque soluciones el tema del cristal, deberas tener cuidado de ponerle a ambos nodos otra vez la configuración que tienes comentada arriba y no otra, ya que esa es la que necesitas para que el bus te funcione...