Arduino GPS Simulator: SoftwareSerial Issues
First off, some comments about your code:


Never use String unless it is absolutely unavoidable
Unless you have a free() to balance your malloc() you will run out of memory almost immediately
There is never any need to concatenate strings to send through serial like that.


Instead of what you are currently doing, just scrap the String usage and your buf variable completely.  There is no need to concatenate things together - serial sends data one character at a time, so you're gaining nothing by concatenating and only causing yourself more problems.

How you should be doing it:

// The changing value as a float
float gprmc=75832.293;
// Print the prefix
mySerial.print(F("$GPRMC,"));
// Pad the value with zeroes
if (gprmc &lt; 10) mySerial.print(F("0"));
if (gprmc &lt; 100) mySerial.print(F("0"));
if (gprmc &lt; 1000) mySerial.print(F("0"));
if (gprmc &lt; 10000) mySerial.print(F("0"));
if (gprmc &lt; 100000) mySerial.print(F("0"));
// Print the value with 3 decimal places
mySerial.print(gprmc, 3);
// Finally print the suffix
mySerial.println(F(",A,4042.695,N,07400.796,W,,,080120,000.0,W*63"));


Note the use of the F() macro to further reduce RAM usage by keeping the string constants in flash memory.