Try to check whether the flags are set up correctly for the MSCAN driver. There is a function for this page 33, 6.4.5 Check_CAN_Status of the MSCANDriver For S12 + S12X UserManual (attached).
Or e.g., page 7:
http://cache.freescale.com/files/microcontrollers/doc/app_note/AN2726.pdf?fasp=1&WT_TYPE=Application...
This reads out the registers for the MSCAN set up and status. This function obtains the status of the msCAN module. This function will write the status of the msCAN module to the address specified in the argument. The status will be 3 bytes with bits corresponding to the following register names of the msCAN that can be found with description in datasheet of MC9S12G Family, page 573, 18.3.2.1 MSCAN Control Register 0 (CANCTL0)…
http://cache.freescale.com/files/32bit/doc/ref_manual/MC9S12GRMV1.pdf
I hope this will help.