So I have done some experimentation and can see the cause of the performance problems, though I do not fully understand.
When I do automatic routes using route_allowed_IPs, I get full "upload" performance (roughly 9Mb/s).
My original method of doing routes was manual.
ip route add default via 192.168.219.2 dev wg0 table 99
ip route flush cache
ip rule add from 192.168.1.1/24 table 99
This had the problem, as described previously, of uncharacteristically slow "upload" performance, roughly 1/8 of the expected.
The following is very similar but matches the good speed of automatic routing.. It does routing based on input interface rather than src IP address.
ip route add default via 192.168.219.2 dev wg0 table 99
ip route flush cache
ip rule add iif br-lan lookup 99