I think I found the problem.
In my test project, when I list uses in this order:
uses
{$IFDEF DARWIN}
CThreads,
{$ENDIF}
Interfaces,
Forms,
it works well.
When I swap interfaces and forms:
uses
{$IFDEF DARWIN}
CThreads,
{$ENDIF}
Forms,
Interfaces,
I get this conversion problem.
After swapping those units in my old project, I got it running without any problems and was able to load the file with international filename!
So, the problem is solved.
Still, I spent a week fighting with this problem, and a warning or hint or error message would really help.