Product- und Fileversion habe ich nicht verwechselt.
Das habe ich damit ja auch gar nicht sagen wollen. Die Implementierung von GetFileVersion in System.Sysutils weicht bei der Behandlung des Dateinamens wesentlich von deinem Code ab und ergänzt das auch mit einem Kommentar. Das wäre doch zumindest einen Versuch wert. Wir haben ja hier keine Möglichkeit, das zu testen, deswegen können wir nur Vorschläge machen.