NMEA 2000 Shield

I do not see that there is any reason to setu FlexCAN filtering. You could just catch all messages and filter them on sw - Teensy 3.6 has enough and lot more power to do that. Also if you use other CAN on Teensy 3.6 just for connecting it to engine, it will not have much messages on that bus. I have been testing Teensy 3.6 on bus, where I have over 100 frames/s on the bus and it still do filtering and graphics at same time.

Take a look for NMEA2000_Teensy module and create new module for handling standard CAN messages with interrupts. Then just poll the buffer like on NMEA2000 library and filter messages you are interested.