Hi deezy,
Someone more qualified might be able to answer your question a little better than I - but I'll take a quick stab at it.
I went through a similar situation as you two years ago, where my housemates were stealing all the bandwidth via p2p (I believe they were using less sophisticated p2p clients: limewire, kazaa, etc). Once I got the initial setup figured out, and learned a little about packet shaping, it was a breeze throttling down their p2p bandwidth which left plenty of room for surfing and playing WoW.
As per your question about their uploads and downloads switching ports; if there really is no pattern to which ports their bittorrent clients are using, you could (in a worst case scenario) put everything but http traffic into it's own queue and put it at a lower priority. I'd definitely recommend this only as a last case scenario.
Changes can definitely be made on the fly, and you can monitor where your traffic is going. You can even subdivide your bandwidth per IP, so each IP get's its own amount of bandwidth. The bad thing about that is, everyone gets a smaller piece of the pie; whereas if everyone shares - some people might use more than the others during some parts of the day and vice versa.
Hope that helps.