I know, I know.
I wanted to be able to solve it by getting help in a conceptual form this time.
But, I believe I figured it out.
IP/ROUTE for all VPNs uses the WG iface as gateway.
All I had to do is add the private subnet and the VPN addresses to the WG peer.
That is, PEER-A wants to talk to PEER-C without a WG connection between them.
Both PEER-A and PEER-C have a WG tunnel to PEER-B.
By putting PEER-A's private network and the WG IP in the allowed addresses of PEER-C's connection to PEER-B,
and,
putting PEER-C's private network and the WG IP in the allowed addresses of PEER-A's connection to PEER-B,
This allows PEER-B to act as a relay.
Putting this explanation into words in a clear way is indeed not easy.
Here's the relevant code:
PEER-A:
/interface wireguard peers
add allowed-address=\
10.10.100.1/32,192.168.2.0/24,192.168.88.0/24,10.10.100.2/32 comment=212 \
endpoint-address=xxxxxxx.dyndns.org endpoint-port=51820 interface=\
wireguard1 persistent-keepalive=40s public-key=\
"xxxxxxxxx"
/ip address
add address=192.168.20.1/24 comment=defconf interface=bridge network=\
192.168.20.0
add address=10.10.100.12/24 interface=wireguard1 network=10.10.100.0
/ip route
add disabled=no distance=1 dst-address=192.168.2.0/24 gateway=wireguard1 \
routing-table=main scope=30 suppress-hw-offload=no target-scope=10
add disabled=no dst-address=192.168.88.0/24 gateway=wireguard1 routing-table=\
main suppress-hw-offload=no
PEER-C:
/interface wireguard peers
add allowed-address=\
10.10.100.1/32,192.168.2.0/24,192.168.20.0/24,10.10.100.12/32 comment=212 \
endpoint-address=xxxxxxxx.dyndns.org endpoint-port=51820 interface=\
wireguard1 persistent-keepalive=40s public-key=\
"xxxxxxxxxxxx"
/ip address
add address=192.168.88.1/24 comment=defconf interface=bridge network=\
192.168.88.0
add address=10.10.100.2/24 interface=wireguard1 network=10.10.100.0
/ip route
add disabled=no distance=1 dst-address=192.168.2.0/24 gateway=wireguard1 \
routing-table=main scope=30 suppress-hw-offload=no target-scope=10
add disabled=no dst-address=192.168.20.0/24 gateway=wireguard1 routing-table=\
main suppress-hw-offload=no
PEER-B:
/interface wireguard peers
add allowed-address=10.10.100.2/32,192.168.88.0/24 comment=371 \
endpoint-address=xxxxxxx.dyndns.org endpoint-port=52820 interface=\
212-Wireguard persistent-keepalive=40s public-key=\
"zoxxxxxxxxx"
add allowed-address=10.10.100.12/32,192.168.20.0/24 comment=629 \
endpoint-address=xxxxxxx.dyndns.org endpoint-port=51821 interface=\
212-Wireguard persistent-keepalive=40s public-key=\
"q2xxxxxxxxx"
/ip address
add address=192.168.2.2/24 comment=defconf interface=bridge network=\
192.168.2.0
add address=10.10.100.1/24 interface=212-Wireguard network=10.10.100.0
/ip route
add comment=371 disabled=no distance=1 dst-address=192.168.88.0/24 gateway=\
212-Wireguard routing-table=main scope=30 suppress-hw-offload=no \
target-scope=10
add comment=629 disabled=no distance=1 dst-address=192.168.20.0/24 gateway=\
212-Wireguard pref-src="" routing-table=main scope=30 \
suppress-hw-offload=no target-scope=10