Das lässt sich leider nicht kompilieren:
[dcc32 Fehler] Unit10.pas(10): E2574 Instantiierter Typ kann nicht für TYPE-Typdeklaration verwendet werden
Recht haste!
Dann sehe ich im Moment keine Möglichkeit da raus zu kommen. Da Records nicht abgeleitet werden können und Helper auf generische Typen sich nicht nach Typen unterscheiden lassen, sieht das schlecht aus für deinen Ansatz.