OK, I don't know how this ever worked well, but here is the problem:
CABLE MODEM - HUB - SERVER AND ROUTER - ROUTER TO OTHER COMPUTERS
I don't understand what you are trying to accomplish with that config, but your packets are going to be bouncing all over God's creation trying to get out. The setup should be:
cable modem- router(how many ports?)- hub(if no ports left on router/remove otherwise)- server and lan clients
You simply set up ip and port forwarding to your server on the router itself. Whether a linux box or a dlink or cisco brick.
From the given information, that's the best that I can derive. I wouldnt blame hardware yet as that topology is seriously jacked. Good luck.