Hi @J_J_Sloan
Your design is in a good place. The fact that Debian with keepalived and FreeBSD with CARP both work exactly as expected shows the topology itself is sound and that your routing approach is solid.
When two different OSes handle the same layout with vary like this, it usually means the issue lies in something RHEL 10 changed under the hood rather than anything in your setup.
RHEL 10 shifted a few defaults that can block routed traffic between your internal networks even when internet access still works. The main ones showing up lately are stricter nftables forward rules and tighter rp_filter behavior, either of which can drop DMZ-bound packets in a VRRP setup.
Since your other OS tests work cleanly, the architecture itself is likely fine. On RHEL, a look at rp_filter and the forward chain may reveals which new default walled off the DMZ.