It still works, but requires little changes in the code. Somehow my FPC 3.1.1 is confused when it sees:
//: Set return value
procedure Returns(AValue: Variant); overload;
procedure Returns(AValue: Pointer); overload;
procedure Returns(AValue: IUnknown); overload;
procedure Returns(AValue: TObject); overload;
And it decides that calls to this method with integer argument doesn't match any of them, while it should match the Variant one. Probably a compiler bug. It's trivial to typecast to Variant, however. There are only a few.
I use the newest Delphi project converter from my Lazarus trunk and greatly it knows that FPTest is DUnit compatible so it adds fptest automatically to the project dependency and it compiles just fine.
The test is not clean, though. 1 error 1 failure 5 warnings. No memory leak.
Attached is the modified archive.