Ok, I'm not a GSM guru but this what I got from my experience.
GSM is the network through which you can establish SMS or voice call communications.
GPRS is only a layer added above GSM to be able to establish ip based data communications. That is why it is called 2.5G.
So, the two are equivalent frequency wise.
Like I said, not an expert, but FDM sounds about right.
Calling a URL is done with HTTP protocol on top of TCP so the choice rely between TCP and UDP.
The main differences between those two is the data communication reliability and cost.
TCP have auto-acknowledment integrated in the protocol so you are sure to receive your data or know if an error occured.
The downside, the data exchange is far superior than UDP so, the cost of your M2M SIM subscription can be greater.
UDP header is much ligter than the TCP header.
But, if a frame is never received by the other hand, you do not know it.
Two solutions:
App1: GPS data are sent regularly so communication reliability is not critical. You can afford to lose some points.
In practice, an embedded system engineer like I, will prefer UDP over TCP for this kind of application.
App2: GPS data are sent on request only.
In this case, TCP approuved.
But HTTP is over kill.