2x16

Is this display ruined? If not, how could it be fixed?
It seems to have an overlay of some sort on it which it didn’t have before and occasionaly it blurts out random text then goes to the default state

Here’s the display

Looks like it is working just fine (contrast a bit off). Maybe the code that is running is causing the problem. But we won't know till we see the code.

Read the how to use this forum-please read sticky to see how to properly post code and some advice on how to ask an effective question. Remove useless white space and format the code with the IDE autoformat tool (crtl-t or Tools, Auto Format) before posting code.

It's not the code, and not contrast either, I'm really sure at this point that it's broken. It was working fine with the same code so it could only be the display breaking.

I can't see anything definitely broken. Your soldering looks like it was done by a shire horse. Maybe de-solder all that, clean up with solder pump/braid and re-solder with finer wires.

Post your schematic so we can check you have connected the contrast pot correctly, for example.

Well, the contrast clearly is set incorrectly.

A hint. There is an annoying blunder, a mistake propagated through successive designs using the HD44780 type display drivers, where the contrast potentiometer on pin 3 is shown connected to Vcc - 5 V on one end (and the other is grounded). The contrast potentiometer is typically cited as 10k. In fact, it should never be connected to 5 V, and as such, the proper value is 1k, connected between pin 3 and ground only. Even with a 10k pot, this makes it much easier to set the contrast (and in fact, a clever idea with a 10k pot is to connect both ends to ground!).

Another "bright idea" is to connect pin 3 to a PWM pin on an Arduino instead of to a potentiometer. Supposedly this allows the contrast to be adjusted in code (which in fact, does not work) or "saves" a potentiometer. In fact, this is a really bad idea and might actually produce an effect such as you illustrate. If you cannot afford a potentiometer, try connecting pin 3 to ground via a 470 Ohm resistor, or a 220 or simply directly to ground and see which one gives the best contrast. The "blocks" which contain the characters should only barely be visible if correctly adjusted.