Overlapping doesn' happen

It seems you never bind the OnActorBeginOverlap function to the event and you don’t tell BoxComponent to generate the events. Add this to the end of the AZone constructor:

BoxComponent->SetGenerateOverlapEvents(true);
OnActorBeginOverlap.AddDynamic(this, &AZone::OnActorBeginOverlap);

Hope this helps