Szia!
Ennyi alapján senki élő ember nincs, aki megmondja. Helyette a debug eljárás:
1. kiszedsz minden szart belőle. Pl. nem tudom, hogy a 76. sorban az epd epd minek, amikor előzőleg a setupban már inicializáltad és nem úgy tűnik, hogy utóbb bárhol is leállítottad volna.
2. Csinálsz egy tök üres loop-ot, ami eddig a loopban volt, azt felviszed a setup végére delay() nélkül. Kiszeded az if-et, de az updateDateText()-et meghagyod.
3. A void updateDateText() és void drawText() függvényeket a Setup elé teszed mindenestül. Valószínű egyébként is le fog fordulni, de jobb a békesség.
4. A két függvény (mint előbb) minden második sorába írj be egy Serial.println("sorszám"); utasítást, benne a "sorszám" növekvő sorrendben. A Serial Monitor kiírása alapján tudni fogod, hogy hol hasal el a szoftver. Az A) eset alapján elvileg nem szabadna, mert minden lefut, amin az updateDateText()-ben van.
További javaslatok:
Ne a napváltást állítsd be arra, hogy frissítsen, hanem mondjuk ahogy @LyPapa nagyon helyesen megírta, indíts el egy számlálót és annak az értékét frissítsd a kijelzőn.
Ez egy g'ci komplikált program egy kezdőnek, gyakorlatilag a változómanipulálástól kezdve (itoa()) a kettős függvényhíváson át a komplikált, objektumszintű könyvtárkezelésig (now.day()) minden van benne, amit egy kezdő nem ért. Ennél azért számottevően egyszerűbb cuccokkal kellene kezdeni, mert a "gyári", sokszor retek módon megírt példaprogramokkal is folyamatosan el fogsz hasalni és a legkisebb változtatás is szétdobhatja az egészet és onnan felettébb nehéz felállni.
Ennek szellemében, ismét ahogy LyPapa írta nagyon helyesen, előbb meg kellene tanulni sorban:
-- hogyan kezeld az RTC-t,
-- hogyan kezeld a soros vonali kiírást,
-- hogyan manipuláld a változókat (formátumváltás),
-- hogyan kezeld a eink kijelzőt.
Mindezt külön, nem egyszerre. Olvasd el és értsd meg az összes használt könyvtár (epd4in1, imagedata, epdpaint, RTClib) readme-jét.