Unable to Pass a Delegate a Derived Class as Payload

I have class UObjectiveResource and class UObjectiveResource_Zone : public UObjectiveResource

I have a delegate UObjectiveResource::SetUpDelegate which takes no parameters and does not return a value.

In my class UTask_Objective_SeizeFlank I have the the function StageAI(UObjectiveResource*)

However, when trying to bind StageAI(UObjectiveResource*) with an object derived from UObjectiveResource:

	UObjectiveResource_Zone* resource = NewObject<UObjectiveResource_Zone>(this);

	resource->SetupDelegate.BindUObject(this, &UTask_Objective_SeizeFlank::StageZone, resource);

This causes error C2664: with note note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

As a sidenote, specifically in UE4, after creating UObjectiveResource_Zone* resource I store it in an TArray<UObjectiveResource*> of resources.
Do I need to delete resource in order to avoid a memory leak, or is it deleted after the function goes out of scope?