Hello DWhite,
The msCAN module was created with simplicity for the user in mind (almost).
It means that a lot is happening without user/soft intervention.
An incorrect frame is just dropped... Unfortunately for you, a lot of CAN modules work like this.
To detect timing problems or CRC, I see the use of timers as almost the only way...
The problem is to have enough memory/speed to deal with the traffic on the bus.
With your S12X, you are able to let the XGATE doing all the frame decoding and put it in a RAM buffer.
XGATE could calculate the CRC and check with the one taken.
But I don't think this can be achieved only with the msCAN module, you need external help.
Hope this helps,
Alban.