From that description, does not appear your doing it right. Your setting the RTC each time you boot?
private static DateTime SetDateTimeFromRTC()
{
// RealTimeClock.SetTime(new DateTime(2011, 4, 22, 1, 1, 1, 0)); // Set once to set the RTC.
DateTime dt = RealTimeClock.GetTime(); // Get RTC time.
Utility.SetLocalTime(dt); // Set system clock.
return dt;
}