Das Encoding, das du beim Create übergibst, hat nur Auswirkungen, wenn die Datei nicht existiert. Ansonsten wird das bestehende Encoding der Datei verwendet (Bug or Feature?). Du kannst aber das Encoding über das gleichnamige Property vor dem UpdateFile noch gezielt setzen.
Delphi-Quellcode:
ini := TMemIniFile.Create(FileName, TEncoding.UTF8);
...
ini.Encoding := TEncoding.UTF8;
ini.UpdateFile;