Let's see if I get this right.
I'm in a college network and apparently the server use firewall and blocks some ports, as is the common. Logically, they won't block all ports as doing so will close all internet communication.
You may be confusing incoming and outgoing ports. For outgoing ports, yea, they can't block all outgoing ports or it would prevent all internet communication outwards, but they surely can restrict them to a small set of ports if they wanted to such as outgoing web, ftp, and email only. For incoming ports, they definitely can block all incoming ports and not affect normal web browsing at all.
Now, when we connect to the tracker, we tell the tracker the port we are using, right? Hence, all clients trying to connect to use will know which port to use, so even if the ISP blocks port 6881 as it being BT's original port, if we use a different port, say 50000, they won't recognize it as BT. I chose that number because it's part of the the dynamic and/or private ports, hoping that they won't block that range. Am I right about this?
You are right only if the ISP uses port numbers to determine if you are using BitTorrent. If they go further and inspect higher level handshaking information, they can stop BitTorrent on *any* port, no matter what port you serve it on.
Okay, to cut things short, I have set my external IP to the client and I can connect to few peers, does this mean that somehow, I have bypassed the ISP issue? Does this also mean that I have bypassed the firewall issue, whether it's on my part or my peers' part?
It doesn't mean you bypassed any issue at all. All it simply means was that you made outgoing TCP connections to other peers accepting incoming TCP connections and the handshake was successful. You could very well get 0k/s out of them after the connection was made due to an ISP sniffing out protocol headers and throttling you down.
Next is the problem. Download rate is mostly 0 kbps although on very rare occassion I can download up to 20 MB. Upload stays at 0 kbps more often than that, but recently I've uploaded twice as much as I downloaded. Why is the upload like that? Mostly 0 but now twice. And since I can connect to some peers, why does it stays at 0?
Most likely throttling done by your ISP.
I have tried using it and the response is negative, is it part of the ISP issue? If people can initiate a chat with me, it should means that people can get to me using those ports, shouldn't it?
You didn't mention whether you actually got incoming connections or if the connections you had were only outgoing. Natcheck's negative response could be due to you only able to make outgoing connections and being unable to receive incoming connections.
Lastly, I have used two different programs to find my external IP and they both reported the same IP but this IP is different to the one shown by natcheck, what's the problem?
match what those programs say?