> In the port column multiple users are getting assigned the same port
that's ok, because asterisk is listening for SIP-packets on port 5060 for all phones. although there are lots of phones with the same port, asterisk uses ip-address and port to communicate, so there will be no trouble. you can change the port for asterisk in the 'sip.conf' -> bindport: 5060http://www.voip-info.org/wiki-Asterisk+config+sip.conf
> Who hands out the port numbers? The router, the carrier, or the phones?
5060 is the standard port. you're phones, registered on asterisk, should use the port if 5060 is your bindport. on grandstream you can modify the port for every account, but your account and asterisk should use the same one, e.q. 5060, 5061... so both sides need to know the right/same port.
>My problem is that if I dial 1100 for example, I could ring on 1100 and another phone that has the same port number assigned
that sounds more like an extensions.conf problem. your extension has got some parts like
exten => 111,1,Answer()
exten => 111,2,Dial(SIP/yourPhone)
yourPhone is a context in the extensions.conf. if there's more than one phone with the same context, more than one will ring. maybe you can post your *.confs, especially the contexts, so it'll be easier to solve the problem