As already stated in my last paragraph.
You can access and set the zone reference after casting to your character within your zone blueprint.
Just take the character object of the cast and type set zone and select the right variable then just assign self to it.
Edit:
I’m currently ar gym so not able to think through out a best practice solution. Tho I would recommend handling the overlapping character side. So you store the zones you overkap in the character directly when you overlap them. Easiest and simplest setup imo.
You are currently handling the overlap at the zone. Its also way more dynamically configurable when you handle it characterwise, thinking of different zone types.