Hi,
I looked into it and I think I know what the problem is.
You're using the ordering column "product_created" for your products listing, with the direction being descending.
This means that you want the newer products first and the older products last.
The problem is that many products (almost all of them ?) have the same "product_created".
So MySQL doesn't know how to order them and randomly order the products with the same product_created.
That's also why some products don't move from their location because they have a different product_created.