GPS onto SD card not going well

The SD library uses 1/4 of the available memory on the UNO. The GPS library needs a fair amount. The String class wastes a lot, too.

Why are you declaring all the functions static? That makes sense only when there are multiple compilation units involved.

Your (long) string literals are consuming a lot of SRAM. The F() macro would stop that.
Serial.print(F("Testing TinyGPS library v. "));

Ditch the String class. It is not needed. Writing to the SD file using one print() call or multiple print() calls takes the same amount of time, but the multiple write take far fewer resources.