da ist kein Fehler zu sehen - wäre auch zu einfach gewesen

Da du offensichtlich nicht möchtest, das jemand direkt und live drauf schaut, hab ich mir den Filter noch mal angeschaut. Vielleicht hilft dir das bei der Problemsuche
Der Outputfilter startet bei jedem Klick im Frontend, alles, was dort ausgegeben werden soll, muß diese Filter einmal durchlaufen. Dabei werden dann z.b. Mailadressen verschlüsselt, WbLinks aufgelöst oder Droplets abgearbeitet.
Der Filter CSStoHead sucht in der gesamten Ausgabe nach Codezeilen, die einen Link enthalten zu Dateien, die über diese Methode eingebunden werden, also nach der Kombination (\<link[^>]*?"(text\/css|stylesheet)"[^>]*?\/?\> oder eben nach einem abgeschlossenem style-Block, also <style[^>]*?\>.*?\<\/style\>, aber eben keine Inline-Style's
Findet er solchen Code in der Ausgabe, möchte er ihn in den Head-Bereich verschieben, wo er lt. Definition eben hingehört. dazu sucht der Filter die Struktur der index.php des genutzten Templates durch, wo es zwei mögliche Bereiche gibt, 1: innerhalb von <head></head>, dann 2. innerhalb von <body></body>
Jeder mögliche Treffer sollte dann direkt in die Zeile vor dem schließendem </head> geschoben werden.
Findet er aber diese zwei Bereiche nicht, weil z.b. die Code-Struktur der geplanten Ausgabe dieses unmöglich macht, erscheint der o.g. Fehler "malformed document created, missing head area", heißt: der Filter findet das schließende </head> nicht.
Ursachen dafür sind vielfältig, die einfachste und verständlichste Variante wäre das Einlesen einer zweiten Datei, die ebenfall eine HTML-Seitenstruktur aufweist. Eine andere Möglichkeit wäre die Verwendung von Uralt-Modulen oder Uralt-Droplets. Früher war es nämlich üblich, Links z.b. zu CSS-Dateien direkt in die Ausgabe eines Moduls zu schreiben. Stammt aus Zeiten, wo es die Funktion register_frontend_c
ss() noch nicht gab. Gilt dann analog für Droplets.
Und dann wäre eben noch die Validität der Ausgabe. Jeder kennt es, jeder hat es schon mal gesehen: hab ich einen Syntax-Fehler in meinem Template (und das schließt die Ausgabe einzelner Blöcke mit ein, erscheint mein Inhalt oder auch nur eine Fehlermeldung an völlig anderer Stelle, abhängig vom Abbruch mal ganz oben oder ganz unten, aber oft eben "out of content" und damit außerhalb von <head> oder von <body>. Gutes Beispiel sind deine Validierungen, die auf nicht geschlossene Div's in Folge des Scriptabbruches hinweisen.
Je nach Stelle hat man dann auch mal zwei <head>-Bereiche
Als "Profi" hab ich nun meine Methoden, nach solchen Stellen zu suchen, die haben aber auch das Risiko, die gesamte webseite zu zerschießen, wenn sie falsch angewandt werden. Haben aber auch den Vorteil, das die Ursache in kürzester Zeit gefunden werden kann, ich denk, ich bräuchte keine 5 min mit einer Live-Ansicht, um das Problem zu finden.
Als Laie würde ich jetzt die Newsbeiträge deaktivieren. Zuerst das gesamte NewsModul über die Zeitsteuerung deaktivieren (Eingabe eines Datums aus der Vergangenheit in der Sektion-Verwaltung dieser Seite. Dann probieren

Lt Code der index.php des Templates verwendest du eine Abfrage auf Content im Block2. Lt Quellcode der Fehlerseite wird solch Block2 auch genutzt. Diesen Inhalt mal dem Block1 zuweisen (gleiches Bild). Auch wieder probieren.
Wird in einem der beiden Test's der Rest des Content angezeigt, ist der Fehler eingekreist, entweder auf das News-Modul oder auf den Code des Block2
Ist nun das News-Modul der auslöser, kannst du nach und nach jeden News-Beitrag inaktiv schalten. Einer davon wird das Problem auslösen (denk ich)