It sounds like and MTU problem. You M0n0wall is connected via DSL and running pppoe, so your packet size is alread reduced from the normal 1500 because of the pppoe overhead.
VPN gives an additional overhead, the size of which depends on the type of VPN, cisco will usually be IPSEC in tunnel mode, so you have the overhead of a new set of headers, and also cisco VPN's have the option of using udp or tcp to wrap the VPN connection to make it NAT friendly. Or there is SSL VPN ....
Depending on your setup, the client will negotiate MTU with the Cisco ATA / Router / Firewall, and this setting is configurable on the ASDM. Again, depending on your setup, the client will take your client MTU (1500) and reduce it by 94 Bytes and propose that as the MTU. If this is what is happening to you, the best option is to reduce the MTU on the ASDM in your HQ, or reduce the MTU on your client PC, look at tcpoptimizer.exe
http://www.speedguide.net/downloads.php if it's windows