CreateWidget takes in a PlayerController instance (via “this”) - you seem to be passing a PlayerCharacter so it couldn’t find a matching overload.
BTW Denny’s suggestion is wise - create an event dispatcher in your playercontroller/playercharacter and bind an event from your HUD BP to that dispatcher, broadcast whenever the HUG message needs to change. This way you can skip the C++ HUD stuff like you wanted to as well.
Admittedly I haven’t used event dispatchers as much as I should have, but I think you should be able to easily bind to a dispatcher in your PC right from the HUD itself.