I have been doing some tests, and I think I figured out when the Network Type Selection works and when it fails.
There must be some part of the code that checks if 3G is available before switching to 3G, or to 2G.
You won't be able to switch if you THERE IS NO SERVICE (SIGNAL), this issue...