Ich habe nun nach langem suchen und der Info das der Server wo meine Seite drauf liegt die PHP Version auf 5.4 geändert hat den Fehler gefunden. Auch wenn ich ihn nicht so richtig verstehe.
Das Problem liegt an htmlspecialchars und an htmlentities. Diese Funktionen wurden mit der Version 5.4 so geändert das sie nicht mehr Standardmäßig ISO-8859-1 erwarten sondern UTF-8. Es scheint dann so dass dann alle Strings auf meiner Website die Umlaute enthielten durch die Funktionen zu leeren Strings umgewandelt wurden. (Warum auch immer)
Da bei mir alles durch diese Filter läuft, fehlten dann Texte überall auf der Website. Scheinbar wahllos.
Mit htmlentities($input,ENT_COMPAT | ENT_HTML401 , 'ISO-8859-1'); hat sich das Problem nun gelöst. Warum aber die Funktion den kompletten String verschluckt hat ist mir ein Rätsel.