1602A LCD randomly shows gibberish (MEGA2560)

For starters I am just that hardware guy on this project, my supervisor wrote the program.
We are using an Arduino MEGA 2560 driving a 1602A.
There is a button and an external solid state relay operation a pump.
You walk up to the exhibit and the LCD displays "push the button to start the water flow", then the display toggles between a count down and "what are the fish doing?"
When that times out the display switches to "the fish are resting" and another count down timer. When that is over it goes back to "push the button to start the water flow"
It operates flawlessly every day, seven days a week, six hours a day.
But... when I get to work early in the morning the display shows random nonsense (every day).
I open the control panel, hit the reset button on the 2560 and it operates all day without error.

I do have the program on my computer and can post any portion of it if you think it will help.

Hi Scott:

From what you wrote, I don't think that this is a software problem. I would look at the hardware and power to your unit. Possible noise getting into the system via the power lines or a dip in power due to a device that only turns on in the evening/night. Something like this.

Can you draw out a simple block diagram of the setup and post it here?