Hola Jagonru01.
Respecto a usar una u otra placa con ese PIC, no hay problema alguno.
Te recomiendo usar el hardware usart para el 485 y el hardware SPI para el mcp2515 (controlador CanBus).
Si vas a programar en assembler te recomiendo el RS485, vas a poder hacer una red Maestro >>> Esclavos bastante buena.
No te recomiendo meterte con CAN en assembler porque vas a sufrir, son muchos registros para configurar y seguramente vas a meter la pata.
Si en caso contrario, usaras lenguaje C para programar, todos tienen librerias para usar el modulo CAN (Microchip, CCS y MikroC las traen al menos), alli renegaras menos o casi igual que en RS485.
Si debo hablar de ventajas uno sobre el otro, la principal diferencia ( a pesar que todo el mundo piensa que son iguales) es que RS485 funciona como Maestro >> Esclavo, mientras que CAN puede hacerlo asi, pero su principal fortaleza es que funciona como Productor > Consumidor, que esencialmente permite que un esclavo transmita un valor, dirigido a uno, varios o todos los que estan conectados en el Bus y esos pueden consumir ese dato sin que un maestro tenga que marcar el ritmo.
Ambos modos pueden funcionar al mismo tiempo, el maestro haciendo poolling y los esclavos transmitiendo por tiempo, por cambios o lo que se te ocurra, lo que hace que la red sea mucho mejor utilizada.
Por otro lado tiene arbitracion, ya que si dos dispositivos en el mismo medio comienzan a transmitir a la vez, siguen haciendolo hasta que el primer bit de sus direcciones sea distinto, en ese momento el de menor numero de Id sigue transmitiendo y el otro espera turno, lo que hace que no haya colisiones.
Todo eso lo resuelve el hardware.
Respecto al medio fisico, yo use cable de red ethernet en ambos sistemas y funciona de maravillas, en CAN hasta 80 metros (ese fue mi limite, porque no tenia mas cable
) y en RS485, con Modbus, hasta 500 metros.