OK, I think what you mean, is that once the timer stops at 4 am, it doesn't restart at 5:34 pm. If this is correct, then the following code will work as a replacement for my original.
Code:
 on me:*:join:#:{
  if !$timer(end) {
    .timerend 4:00 1 1 timermsg off
    .timerstart 19:34 1 1 tmsg $chan
  }
  if ($calc($ctime - $ctime($date 00:00:00)) < 70440) && ($v1 > 14400) && !$timer(start)   {
    .timerstart 19:34 1 1 tmsg $chan
  }
  else {
    tmsg $chan
  }
}
alias tmsg {
  .timermsg 0 10 msg $1 hello
}
on *:disconnect:{
  .timermsg off
  .timerstart off
  .timerend off
} 
 


I forgot to mention this earlier, but due to the way the timers work, the first hello message won't go until 10 seconds after the script actually starts and the last hello message will actually be displayed 10 seconds after the script ends. So the timerstart timer won't actually produce a message until 5:34:10 pm and the last message will go out at 4:00:10 am