DS3231 does not "remember" its setup.

Reuven2018:
// Date and time functions using just software, based on millis() & timer

RTC_Millis rtc;

Are you sure you're actually using the hardware RTC? Shouldn't you be instantiating an object of the DS3231 class?