As I stated before I prefer good bug reports on GExperts over money any time. Philip von Melle kept testing and providing feedback even after I thought the issue was already solved.
The issue was that a Macro Template
(%SELECTION)
used on this code
// öäüß
procedure TForm1.FormCreate(Sender: TObject);
begin
ShowMessage('TEST');
end;
while TEST was selected
generated code like this
// öäüß
procedure TForm1.FormCreate(Sender: TObject);
begin
ShowMessage(''); (TEST)
end;
The reason again was improper use of positions and offsets into the editor buffer in conjunction with some Unicode characters above the code. So the insert position was calculated by 4 bytes too high, hence the macro code was inserted 4 characters behind the start of the original selection.