For anyone following, I think we solved it. We start a timer in the driver and only perform a read if 500ms has elapsed since the last one (we were reading every 100ms or less in our test opmode). This a) got rid of the error (it appears) and b) stopped us getting noisy readings (random 0 readings, for example). We will tune the wait to find the min that works consistently.
Now we are finding the error grows with distance - we plan to test that systematically.