If you want multiple actors to handle the widget event you can create an event dispatcher in the widget.
So when you trigger a widget event, you then Call the dispatcher. As it stands, no-one will register this event, for that to occur you need to create a Bind to it.
The following example shows how to bind it. So when my dispatcher is activated my CustomEvent_0 fires and prints the string.
NB the widget needs to be able to be referenced from any actor binding to it. My example is simple in that I create the widget, therefore i know about it. In reality you may need to store a reference to the widget in the GameMode, PlayerController or GameInstance (or another actor), eg
As to why your ArenaUI is not valid, it could be a race condition? Your GameMode may exist, but by the time you reference your ArenaUI, it may not have been actually created yet. Again you can use dispatchers in the widget to inform the world that you are properly created (eg in OnInitialized), or if time is not that critical, add a small delay before getting the widget reference.