OK, I'll try to address your questions step by step.
1. BitTorrent
I can attest to BitTorrent working perfectly with both private and public trackers. I use port forwarding with CS and it works as expected and yes, once connected you simply go to the port forwarding config site and enter the port number you want; if it hasn't already been taken by someone else, it will be assigned to you.

2. eMule
Same principle as BitTorrent however, CS only supports one forwarded port per user VPN connection. In other words, if you have BitTorrent and eMule running on the same machine, only one of those apps will be able to use port forwarding. Of course there are ways around this (second machine, virtual machine etc.) but be aware of this limitation.
As for the eMule port itself, can it not be changed in the client?