Problems with 16x2 LCD - writes fine but after 10s disintegrates to weird chars

In terms of what is going on. I'd predict some kind of power supply issue.
The reasoning being.
Your first photo shows that the LCD is wired correctly, and that the Arduino s/w is able to initalized the LCD and print characters to it with acceptable contrast.
The 2nd photo show a display that appears to be in its default powerup state.
If the contrast had suddenly changed to something bad, then all the character positions should look the same.
That isn't the case.

Also,

In regards to the power, I use a LM7805 to regulate my input voltage of 12 V down to 5V to power the Arduino and the lcd. I have installed a 220 nF capacitor between the input and ground on the LM7805.

That is not the recommended way to hook up a LM7805 according to the datasheet.

My guess would be that the power supply voltage failed in some way but then came back to an acceptable level at least for the LCD and the Arduino is not happy enough with the power to run so the LCD is in an un-initialized state.

How about giving us a full schematic of what you using?

-- bill