10.10.10.2 it the WAN port of the Linksys WRT54GL (the other end of the connection to WIFI).
Ok, then the reason you can't ping that is probably because the Linksys drops pings to its WAN by default.
I have read about the requirement for a static route before, but I can't figure out how to add it correctly. Firstly, since I use DHCP to assign the network address for the Linksys, it should sort the routes out by itself, not so?
For any directly attached networks, static routes aren't needed. m0n0wall won't be handing out IP's that are off of any directly attached interface. The networks you show coming in on your WIFI interface are on another subnet - your firewall needs to know how to return that traffic. Without the routes, the firewall has to assume they're reachable via your WAN interface since that's where the default gateway is.
Interface WIFI
Destination network 10.10.1.0/24
Gateway 10.10.10.1
Not quite - should be gateway 10.10.10.2, since that network is behind the Linksys.
Do I also need to set a static route for every other possible network on the Wifi connection?
Yes.
I understand that if the addresses are NAT'ed (for example the addresses of wireless clients connecting to the wireless mesh are 192.168.x.x addresses) then I don't need a static route to them since the NAT translates the addresses. Is that right?
Only as long as those IP's are NAT'ed to something that m0n0wall knows is reachable via your Linksys. If your Linksys would NAT everything to its WAN IP, you wouldn't need any static routes. Double NAT'ing isn't pretty, but it may be easier for you and work equally well in this situation.
The default gateway on my wifi network is 10.10.1.1, so as long as there's a static route from monowall via the WIFI port to that address, it should work? Please correct me if I'm wrong.
There needs to be a static route like the one above (correcting the gateway as I said) for every network reachable through the WIFI interface.
I would think that making this a pertinent point in the FAQ or even the manual, would be really helpful. It may be so obvious to those seasoned netops that use M0n0wall, but it's not obvious at all to people that set these things up occasionally and then battle for days with strange behaviours.
It's not "strange behavior" at all, it's how IP routing works with any firewall, router, or other network device - network devices need routes to connect to anything not on a directly connected interface if that network isn't reachable through the default gateway. It should indeed be covered in the documentation, I just haven't had time to do so and essentially nobody else contributes documentation. You're welcome to start a page about static routes on the wiki at
http://wiki.m0n0.ch and it'll make its way into the documentation.