I don’t know the version of your compiler, but this code compiles by FPC 3.3.1:
...
type
generic TAssoc<T> = class
private
type
TAssocSpec = specialize TAssoc<T>;
var
FName: String;
FValue: T;
FList: specialize TAssoc<T>;
...
function TAssoc.GetItem(AName: String): specialize TAssoc<T>;
var
TList: TAssoc;
begin
...
Result.FList := TAssocSpec.Create(AName);
...
end;
Perhaps this will not help you much, because your code compiles by FPC 3.3.1 as well.