TinyGPS library reporting checksum errors, but no visible corruption

By the "while loop" do you mean this part?

for (unsigned long start = millis(); millis() - start < 1000;)

How would this fix the checksum error?