Analizzare 1000 righe di codice non è semplice, io ti consiglio di provare a fare debug impostando il progetto su Tinkercad Circuits, dove ricrei le connessioni, carichi lo sketch, e puoi fare un comodo debug, con breakpoint (metterai un breakpoint sui comandi di apertura e chiusura dei relè) e visualizzazione del valore delle variabili.
Io lo trovo molto comodo, non solo per il debug ma anche per "sperimentare".
Prova e facci sapere.