Even if the class is pure c++ if it is based on UUserWidget you should have a designer graph for it.
For the set size function to work it needs the element to exist inside of the user widget and follow the same name as the bind name and needs to be set as a variable.
So far I don’t see any variables in your widget.
Did you remember to add the bind widget meta on the progress bar uproperty?
UPROPERTY(BlueprintReadWrite, meta = (BindWidget))
Normally if you have a bindwidget that is not set to optional, then a compile will cause an error message saying that the object is missing in the widget.