Hat AnsiChar nicht 2 Byte anstelle von Char (meine ich gelesen zu haben)?
Char ist seit Delphi 2009
Unicode und damit sind das 2 Byte, während AnsiChar nach wie vor 1 Byte hat. Shortstrings wie in deinem Record sind weiter AnsiStrings, von daher passt das.
Dein case würde aber mit beidem funktionieren. Insofern kannst du AnsiChar für die Funktion verwenden oder das Zeichen mit Decode(Char(AktZeiger^.Satz.Typ[1])) vorher umwandeln.