Using an MCU with built-in CAN controller vs. external CAN controller
What are the factors and parameters that should be considered when deciding whether to use the built-in CAN controller or an external CAN controller?


Mostly these are a thing of the past, since there are plenty of MCUs with built-in controllers nowadays. The only reason why you would use an external CAN controller is if your MCU does not support it on-chip. For example if you must use some sort of specialized MCU for other reasons.


  Are there any pros/cons/constraints while using built-in CAN controller?


It is superior to the external controller since you get faster register access, no overhead interface (no need for SPI, I2C etc) and no external components. Cheaper BOM, less things that can break, fewer EMI concerns etc etc.


  Since CAN gateway node will be handling traffic from all 16 networks, would it be a good idea to use an external CAN controller to avoid buffer overflows?


I really don't see how you can connect 16 different CAN bus networks to one node... that sounds like a complete nonsense system design. Are you sure that you don't mean 16 CAN nodes on a single network? Because there exists no sane way you can ever build that system with just one single mainstream MCU.

Assuming you mean 16 nodes, you should consider how capable the CAN controller is. There's generally two kinds: the simple ones that only have a rx buffer FIFO of a certain amount of CAN frames, and the "mailbox" ones that have both rx FIFO and dedicated tx/rx mailbox slots for higher prioritized messages. If you expect to receive a lot of different kinds of CAN frames, you should pick a CAN controller with "mailbox" functionality.

Your particular CAN controller seems to have the mailbox functionality so you should be good. "Up to 64 dedicated Receive Buffers and up to 32 dedicated Transmit Buffers"