If Serial stops, the problem is most likely the i2c bus is hung trying to read the RTC. the latest version of the Wire library supports timeouts which may be useful.
I would also suggest that you simply calculate the number of minutes from midnight as your on/off times and simply things
const unsigned int onTime = V1HON * 60 + V1MON;
const unsigned int offTime = V1HOFF * 60 + V1MOFF;
....
unsigned currentTime = myRTC.hours * 60 + myRTC.minutes;
if ( currentTime < onTime || current Time > offTime ) {
// turn relays off
}
else {
// turn relays on
}
Since you dealing on the minutes scale, you also do not need to read your RTC every second. You could easily make you delay much larger.