@kom Hey I just wanted to follow up and let you know for posterity that I discovered the solution.
Simply setting each subnet/interface's allowed gateway on the firewall wasn't enough. The traffic MUST BE TAGGED in a floating rule.
So basically here is a summary for anyone who might be searching for this:
Goal: Route different traffic to specific gateways, only allowing in/out on specific interfaces or subnets. I have one WAN interface and two LAN interfaces: one of which should ONLY be to VPN (can be single gateway or gateway group), and the other should ONLY be through ISP.
Add firewall allow rules on each interface.
LAN to ISP only
45624255-c3b2-4e88-b5de-0670de19f825-image.png
LAN to VPN gateways only
4e7095d3-3ae7-4768-abae-33aee2e46f3b-image.png
In each rule, tag the traffic with a name you choose:
1bbbdcd6-e3ef-4738-a9a6-7c89ae21ac2f-image.png
7757ab98-6727-4c3a-9385-e434b2a85d82-image.png
Add two floating BLOCK rules.
bb7d5327-6a24-47c2-9d1d-f5c5866008c7-image.png
When you set the block rules for each inbound interface (WAN and VPN), set the opposite tag in the "tagged" field.
This will refuse any packets that have matching tags.
This is what finally stopped any detection of incorrect traffic on either gateway.
Thanks for your help though.