Io una cosa del genere in Delphi non l'ho mai fatta, ma sono contento tu ti sia avventurato cosi' adesso so che si puo' fare. L'ho gia' fatto in C/C++, e forse ti torna utile, vado a spiegare.
Il compilatore del C++ crea dei simboli molto complessi e soprattutto non codificati in modo stabile, di solito per librerie che rendono disponibili oggetti vengono scritte delle funzioni statiche con la clausola "C" la cui unica funzione e' creare l'oggetto e distruggerlo, questo credo perche' altrimenti l'ereditarieta' fa fatica a passare attraverso la libreria (per dirla in prosa...).
Forse bisogna che tu faccia la stessa cosa con delphi, e ti fai restituire due metodi non "of object" che creino gli oggetti della libreria e te li restituiscano, e degli altri cui li passi per distruggerli.
In C++ io avevo dichiarato una classe padre nel programma principale da cui le librerie ereditavano, tu forse puoi fare la stessa cosa con le interfacce in delphi.