I know this is an old topic, but just came across this issue myself and took a few hours to figure it out.
There are a few solutions to solve this:
You may need to run a checkpoint or backup the DB then the dbo user will be able to see the latest changes.
Give the user VIEW SERVER STATE permission
Instead of using CHANGE_TRACKING_CURRENT_VERSION() to get the CT_ID which your user might not actually be able to see yet. You can get the max from sys.dm_tran_commit_table. This however will mean that you are potentially behind in moving the data that changed.