Did you try to put the Sprite inside a Container and use the anchors of Container to do the job of positioning?

Here is my Container's code, I'm using the project settings in this case.
func _on_size_changed():
screenProportionX = get_viewport_rect().size.x / ProjectSettings.get_setting("display/window/size/width")
screenProportionY = get_viewport_rect().size.y / ProjectSettings.get_setting("display/window/size/height")
rect_scale = Vector2(screenProportionX, screenProportionY)
I'm scaling everything inside at once.

...
edit: Anchors at: 0.5, 0.5, 0.5, 0.5, to center a centered sprite