OK, I found out what was causing this, if I do not override GetInputs in my datareference, everything works as expected as far as the DataPipe, my static CreateDataPipe() method gets called on load, whereas before it was not getting called.
So if I leave this in:
public override AFAttributeList GetInputs(object context)
// Return the list of attributes we are interested in.
The static method public static object CreateDataPipe() does not get called.
I am glad you found out the answer.
For future reference, it's perfectly acceptable for you to mark you own answer as correct. In this case I have done so for you.