This is unfortunately a byproduct of MongoDB change events and change streams. We use these to replicate changes made to MongoDB into Realm. The general rules of thumb for how the server creates a change event for a list is that if items are appended to the end of a list we can detect that, but if items are shuffled around in a list, or an element is added at the beggining of middle of a list, MongoDB applies that operation as a full-array-replace.
See here for more details: https://www.mongodb.com/docs/manual/reference/change-events/
As for how you could fix this, are you using $push / $pushAll to update the array? It seems line the answer there is no, but I think that doing so would likely fix your problem.
Thanks,
Tyler