Something is definatley wrong - those are terrible speeds. If you haven't called into technical support already you should - the folks there are really good at troubleshooting and looking into the problem. If needed they can also get a tech dispatched in case there is an issue with your equipment or cable.
A month is a long time to deal with poor performance!! If you have already called and have gotten nowhere send me your address and account number to email@example.com and I will look at it.
Thanks for your patience,
Typical troubleshooting is basically power off everything, including all the tv boxes and the gateway. Once everything is off power the gateway back on. Wait for the lights to settle into a normal pattern. Turn on the desktop. Repeat the speed test. If everything is normal bring each device back on one at a time and repeat the speed test after you add each device.
The first check gateway + wired PC basically checks that your outbound connection works. Retesting after each device is looking for a device which may be causing the issue.
Maybe Jason can delve into it and explain it from his end, but it's my understanding that these modems had some issues dealing with too many simultaneous connections (called NAT sessions) which would cause the modem to get very slow or completely stall out.
There is a webpage for the modem info to display NAT. I've found that a search by LAN IP will show the offending device with a large number of sessions. Often, the only way to isolate it is to turn off your computer/phone/tablet, wait a few minutes for the modem to recover from being overloaded (or reboot it) and try speed tests on another device.
Sorry for the crude pics. This modem has the older firmware. The search box says 1 of 49, which is ok. I've seen some around 800 sessions or more! The "pipe" to your home isn't unlimited capacity. That's the best way I can describe it.
In the other pic, it says "session table 905/1024, 22/512 inbound" so the first numbers is ok as long as it isn't below 700/1024, although the inbound might be an issue.