Can I remove part of the other libraries that are not been used?
The linker only includes code that is actually used. So, no, there is nothing for you to do.
Except get an Arduino with more memory or live with less functionality.
Of course, that assumes that you are using all memory efficiently, which is not confirmed by the code you posted.
For instance, there is no need to have this string literal in SRAM, but it is there:
Serial.println("GSM Shield testing.");
With this small change, it is not:
Serial.println(F("GSM Shield testing."));
Look at the sizes of all of your arrays, too. Are they all needed? Do they need to be that big?