Ublox Neo6m TinyGPS starts over on it's own and sends wired data

Try this -

#include "TinyGPS++.h"
#include "SoftwareSerial.h"


SoftwareSerial serial_connection(2, 3); //RX=pin 10, TX=pin 11
TinyGPSPlus gps;//This is the GPS object that will pretty much do all the grunt work with the NMEA data

/ For stats that happen every 5 seconds
unsigned long last = 0UL;

void setup()
{
  Serial.begin(9600);//This opens up communications to the Serial monitor in the Arduino IDE
  serial_connection.begin(9600);//This opens up communications to the GPS
  Serial.println("GPS Start");//Just show to the monitor that the sketch has started
}

void loop()
{
  while (serial_connection.available() > 0) //While there are characters to come from the GPS
    gps.encode(serial_connection.read()); //This feeds the serial NMEA data into the library one char at a time

  if (gps.location.isUpdated()) //This will pretty much be fired all the time anyway but will at least reduce it to only after a package of NMEA data comes in
  {
    //Get the latest info from the gps object which it derived from the data sent by the GPS unit
    Serial.println("Latitude:");
    Serial.println(gps.location.lat(), 6);
    Serial.println("Longitude:");
    Serial.println(gps.location.lng(), 6);
  }

  else if (gps.satellites.isUpdated())
  {
    Serial.println("Satellite Count:");
    Serial.println(gps.satellites.value());
  }

  else if (gps.speed.isUpdated())
  {
    Serial.println("Speed MPH:");
    Serial.println(gps.speed.mph());
  }

  else if (gps.altitude.isUpdated())
  {
    Serial.println("Altitude Feet:");
    Serial.println(gps.altitude.feet());
    Serial.println("");
  }
}

NOTE, there are examples for this library, good luck.