On tick, only check if health is below 0 IF the character is alive not IsDead. Once the character dies, set a bool IsDead to true. Otherwise you’ll be spawning many death screens, and calling this death code over and over.
Your respawn code will not RemoveAllWidgets IF the gamemode cannot cast to GamemodeMain. Add a execution pin from cast fail to RemoveAllWidgets.
When you respawn, you will also then need to set IsDead to false.
In the future I would also advise you move this death check code out of tick, and move it to a separate event that is called whenever your health changes.

