Found the cause.
Have added this type of code to some of our Types.
Second time run the parent program, the entity is not null, but it has been disconnected.
Simply commenting out the "if" so it always creates a new Models.Planners() resolves the Disconnet exception, but then I suspect I am probably making things worse than not having the feature in the 1st place.
static Models.Planners _entity;
public Text Description()
{
if (_entity == null)
_entity = new Models.Planners();
return _entity.GetValue(_entity.Description, _entity.Planner.IsEqualTo(this));
}