"Intern" ist hier Definitionssache
Ich denke, intern in der Listview wird das schon stimmen, aber intern in der TListView (also der Delphi-Klasse darum) halt nicht. Und sobald Delphi irgendwie ein Refresh macht, stellt es wieder die in TListView enthaltene Reihenfolge her.
Du musst also schauen, ob Du die Reihenfolge auch oder nur in TListView ändern kannst, oder wo sie dort auch nach Erstellung noch wieder geändert wird, und das etwa per eigener Ableitung von TCustomListView erweitern/abändern, wo nötig.