DS1307 RTC Giving Wrong Values After Running for a Few Days

My instinct is that you have a software problem. At minimum, the software should be able to detect that the RCT is not reachable, rather than using the wrong timestamp info. But my guess would be that something in RAM is getting clobbered and causing the problem.