DS1307 RTC resetting unexpectedly

I am running a different "Read" program from the one posted (attempting to touch all the bases here) and, as before, it resets after the 19th second.

And that code looks like?

If it calls bcdToDec(), too, I'd suspect something in that function is causing issues. Try removing the calls to bcdToDec() and see if that gets you past 19 seconds. If the new code doesn't use bcdToDec(), then never mind.