BeginPlay is called on every PlayerCharacter in the Game. If you have a MultiplayerGame and you have for example 2 players in there, the BeginPlay function will be called twice per Game. One time for the main Player and one time for the replicated version of the enemy.
You want to hook a branch with a simple “IsLocallyControlled” in front of you widget things, then it will not be called on the replicated player, but only on the one that the player really controlls.