The explanation by rplant makes a lot of sense, all three routing tables point to different gateways on the same subnet that point to a same (wireguard) interface, so essentially a “same” device and the router OS somehow auto-selects one address on it.
But it is strange that it worked with two and not with three of them.
Probably in a perfect world there should be a warning/error about the Ros doing this kind of auto-selection when there are ambiguities like these.
With three distinct wireguard interfaces, as suggested, maybe one can also use the % syntax in the gateway line in /ip route to explicitly use the one or the other(s).