Erst mal fällt mir auf, dass in Deiner Klassendefinition die Fuktion "GetNetItem" als Result "TNetItem" hat, in der Implementation aber "TNetElement".
Den Typ für aData, bzw. "T" kannst Du so abfragen:
Delphi-Quellcode:
if (GetTypeName (Typeinfo (T)) = 'Integer') then begin
...
end;
Den Integerwert selbst kannst Du so ermitteln:
result := fList[PInteger (@adata)^];