Der Fehler ist schon in der Beschreibung recht eindeutig, Du definierst einige Variablen neu. z.B. "OnHour" -->wurde schon einmal definiert, noch einmal geht nicht. Du kannst höchstens mit OnHour=15 einen neuen Wert zuweisen, allerdings geht dann der alte Wert verloren, weil er überschrieben wird...und das liegt auch nicht in Deinem Sinn.
Du musst den Variablen einfach neue Namen geben, die sich unterscheiden... OnHourA und OnHourB zum Beispiel. In der loop() musst Du dann auch entsprechend abfragen.
Nebenbei: Du hast ja eine serielle Ausgabe mit einprogrammiert, hast Du Dir die Ausgaben schon mal auf der seriellen Konsole angeschaut?