InstancedMesh object gets the pointer to its source mesh
animations array (source code):
this.animations = source.animations;
I believe it should rather copy source array into the new one:
this.animations = Array.from(source.animations); // or .concat(source.animations);
Otherwise, for example, adding new animation to the instance results in adding it to the source mesh as well (here’s a Babylon.js Playground to illustrate this).