yes. First you could find a micro-controller with two uarts. Second you could put another micro-controller in order not to change your hardware too much and communicate with the second micro and the second micro provide the extra uart you need. Secondly you could use a RS232 translator such as max232 which has 2 uart receivers and transmitters. So you could with the help of one extra pin to connect the first or the second pair of translators and communicate with solid state relay or regular relay or a multiplexer.
You have a lot of choices.
I faced the same problem... This could be done with one UART port itself. Use a relay. Made the connection like below.
Connect the Tx of GPS& GSM to Rx of the micro controller through a relay.
connect the Rx of GSM to Tx of the micro controller.
By switching between the Tx pins of GPS and GSM you could get data from both..
I have done this with PIC 16F877A which has one UART.