More than likely it's a lag/glitch in game. Most of the games have this kind of problem but eventually the other client will lag so much it has to be disconnected. or in some scenario, it will continue either A or B save file, for example A lvled to 20, while B is only up to lvl 15, the game could either choose lvl 20 or lvl 15 but the probability that the lower lvl is computed since the server/game could not account for a 2nd data and otherwise is lost.
While pointing out that reason, it is why duping has happened. In most cases duping is caused by really fast glitch that the system could not process the continuation of an action thus it reverts back to it's original state however, some data of future actions may or may not have attached itself into another data that is related to the main data. simply put it in a way that the data is a boomerang, you toss it far, but it comesback the same thing it originally has but it may or may not contain leaves/water/objects when it returns. (idk why i just explained duping...)