I went ahead and set up a completely default WooCommerce installation using GeneratePress, and added their importable demo content.
Here’s what I see on the shop page:
And here’s what I see on the single product page:
The on sale sticky seems to be working as it should with GP.
I would have to see the actual problem on a GP installation in order to figure out what’s going on.
Maybe try deactivating some of your plugins to see if the issue is coming from one of them?