I have exactly the same problem. I uploaded a world to the server, let's say, A. Then I played the world; when I shut down the server, I can see the world and player data has been saved, according to logs. Let's say the status is B.
When I played next time on server, it will start at B status. However, when I download the world and play on client, the world is in B status whereas the player data in A status.
I've check the UUID, it's the same. I do not turn on cheat version. So the only way I can reach the current status is to put all of my items in an inventory so it would be saved in the world, rather than player data.
However, it's quite troublesome. I'm still finding ways to solve it. It seems there's a backup UUID.dat on the server side and the download world function would download this one.