This post is a good reason to check out my tracert guide at MOHadmin.com
Go here
http://www.mohadmin.com/nuke/modules.ph ... age&pid=11
This is a guide on the tracert command. This will help you find out how many "hops" their are between you and your game server.
The Internet is made up of a bunch of smaller networks connected to each other. One of those networks could be causing your a problem.
Read my guide for more info .
On a side note.
Your upload and download have nothing to do with pings
Those speeds represent how fast you can download bit's or bytes of data once you make that connection.
With online games you make many connections every second. If their is any delay (latency) you will start to see lag.
When your downloading a file, you don't notice that 1/100th of a second it takes to make the connection, all you see is how fast your bits/bytes are getting to your computer once it has made that connection.
It is true that your pings do go up to 999 when the map changes. this is why autokick will check pings more then once. So that everyone does not get kicked during map changes. This is nothing to worry about, but if you see this during a game, use the guide mentioned above and check your connection via the tracert command.
Good luck