I've found the issue repeats on a table without any deletions.
If you create a table using MIv16 which has an indexed field, then it can't be opened in MIv8.5, which is about the same era as MapX. But it does work ok with a table created in MIv15
So I think the way that MI v16 is creating indexes has changed slightly and MapX is then corrupting them.
Once the index is dropped and rebuilt in v16 then data can be selected correctly.
If this is not seen as a bug (which I can appreciate as MapInfo is now in a .net environment, so any non .net versions of MapInfo shouldn't necessarily be able to link to this table) then we will need to alter our code to drop any indexes and rebuild them as required.
Thanks