I use the DS1307 regularly and do not find this behaviour. Perhaps some interrupt routine is disturbing your RTC read? I am not underestimating your skill, but, maybe something is wrong with the code. It will be better if you can post it here for review.