I believe you need to override the lifetime of the remote object:
public override object InitializeLifetimeService()
{
return null; //remote object lease time forever
}
Place that into your class which inherits MarshalByRefObject