Update on this issue.
I got a new 16-bit card and also a 12-bit card.
the new 16-bit card acts the same way as the previous one, however the 12-bit works perfectly! It starts at 880 and ends at 220, the count doesn't reset multiple times through the sensors range.
So now I'm really curious, why this is happening with the 16-bit version card. Does the robot know its the 16 bit card as opposed to the 12?
turns out the 12 bit card gives me enough resolution, so I will keep that for the project.