erstmal: ich weiß nicht was UTF8Copy und UTF8Pos für Befehle sind ... zumindestens keine von Delphi selber.
dann nimm die Pos-Berechnungen aus dem Copy raus,
verlagere sie in Variablen und schau, welche Werte diese liefent und ob die Indize beim Copy dann stimmen.
im Grunde kann man auch das normale Pos und Copy (Ansi) auf UTF8 anwengen