Why does my lcd screen work fine and then display random characters?
The problem was that I was adding ":" to the printed string on the lcd without making it a String object. That only occurred if I had double digit hours and minutes. 

Incorrect way:

lcd.print(hours+":"+minutes);


Correct way:

lcd.print(hours+String(":")+minutes);