Approach was totally wrong.
How it should be:
- Widget Blueprint should be derived from standard UserWidget
- For updating data in the widget is better to use function in this blueprint.
- For initiation of this function and control all widgets there is UMG blueprint derived from custom C++ class
- Events should be in that C++ class (BlueprintImplementableEvent or BlueprintNativeEvent)
- Initialization of events through Player Controller using reliable client function with casting to UMG C++ class and calling the events.
- Player controller function can be cast from the others C++ classes.