Crappy ADSL modems often work much worse in router mode.
I had similar issues with a d-link 2500U: NAT-ed connections freezing, modem maxing ~7Mbps download instead of ~20Mbps in ADSL 2+ mode.
If you can afford a cheap old PC with two network cards, I suggest you to install some Linux distro or BSD flavor on it, set it up as router, put it between the ADSL modem and the internal network, set up the modem to work as bridge.
For me, this fixed everything: NAT started to work properly, because it was handled by the PC OS, modem started to max out ~20Mbps.
Of course you can just try to replace the modem, because a PC is worse in terms of power consumption. But a PC running a full-featured modern OS is much more flexible, you can do a lot of specific things with it. There are even a lot of router-oriented options like m0n0wall, ipcop, freesco and others. If you don't want to fiddle a lot with tuning your favorite OS, you could use one of these.