Hmm..
War da nicht was, das Lazarus intern UTF8 bei strings verwendet?
Und darin sind die Umlaute UTF8 kodiert...
Die Windows-
Api movefile erwartet als MoveFileA einen AnsiString und als MoveFileW einen WideString.
Ich weiß nicht ob Lazarus automatisch aus dem UTF8 String einen
ANSI macht..
Ansonsten MoveFileW mit explizierter Konvertierung der Strings nach WideString arbeiten, dann sollte es auf jeden Fall mit den Umlauten passen.
Hier mal die Konvertierung:
https://wiki.freepascal.org/Widestring/de