Thank you for getting back and sharing additional details.
From the Vnet A route screenshot above.
I see you have added a /23 prefix to the next hop as Firewall private IP
This should be the route which will direct VNET B traffic via Azure Firewall Private IP address and should be associated with Gateway subnet of VNET A. (As implemented here)
Based on your statement above Subnet is the entire /25 in that VNET
. I assume VNET B has /25 address prefix, so in the route above the Address prefix should be this /25 prefix of VNET B.
In order to validate if you the correct route is selected, you can use this Next hop feature of Azure Network Watcher. Next hop is a feature of Azure Network Watcher that gives you the Next hop type, IP address, and Route table ID of a specific destination IP address. Knowing the next hop information helps you determine if traffic is being directed to the intended destination, or whether the traffic is being dropped. An improper configuration of routes, where traffic is directed to an on-premises location or a network virtual appliance can lead to connectivity issues. Check the next hop from both the VNETS A and B's Virtual Machines.
Hope this helps! Thanks!