GSM-R actually does have support for service prioritisation and can be used safely and securely to deliver services like train wi-fi. It can be set up with varying priorities, so that for example train wi-fi will degrade in favour of guard credit card authorisation, which in turn will degrade in favour of signalling.
As far as I'm aware there's no provision for passenger devices to connect directly to it, though - there has to be a router on the train broadcasting wi-fi.
GSM is slow. You wouldn't use it for data even if you could. GPRS or EDGE? No thank you. Totally unusable for providing data for Wi-Fi, but probably okay for communicating train diagnostic information and other logistical data.
For providing data, you'd use a combination of satellite, 3G and 4G. Satellite having obviously the largest latency, followed by 3G. 4G is much, much more efficient and the lower latency will really improve the user experience on trains (and buses etc). With 800MHz 4G, coverage is massively improved too - or will be once rolled out more widely in rural areas.
There are currently issues delaying 4G being 'boosted' in that voice is carried over 2G and 3G, so 4G coverage can't go beyond the legacy networks. Once Voice over LTE is launched, the problem will go away and 4G can suddenly fill places that have little to no coverage.
I can't really stress how much more efficient 4G is over 3G. Such that I'd say that as soon as possible networks should seek to be able to re-use 3G frequencies to provide 4G services. Ditch 3G and pretend it never existed! 2G can stay as it's a good, solid, dependable system with lots of embedded systems using it to communicate.
And, yes, one good thing about GSM (and that applies to the normal service) is prioritisation. Thus the emergency services (well some people within the services) are given SIM cards with a higher priority, and the power to boot others off if required. The only time Joe Public can do this is when attempting an emergency call, although I don't know if every network allows this [namely, calling 112/999 will get through even if it has to knock someone else off the network].