Probably best not to use global bounds to move a position; it will move it every time this is called.
What's wrong with using this:
sprite.setOrigin(sprite.getLocalBounds().width / 2.f, sprite.getLocalBounds().height / 2.f);
just once and then every time you set its position, it'll be centred.
If you use
Plinth (I do all the time!), you can use its
SFML Anchors. For example:
sprite.setOrigin(pl::Anchor::Local::getCenter(sprite));