FYI, there is an old topic in the last forum. The thing drags on and on, but might be helpful.
Blender has different model of sharing to BJS instances. Blender just applies the same properties among all. The purpose is to share data, except position / rotation / scale.
In Babylon.JS, there is a mesh, and all the others are instances. The purpose here is performance by reducing draw calls. The exporter makes the first mesh encountered with shared data the
Mesh, and all the rest are the
InstancedMeshes. There are many things which cannot be set different on an Instance. I do not know see where to set collisions is on an InstancedMesh. I do not know / remember if InstancedMeshes can participate in collisions / physics.
One thing that could be done as an alternative without increasing draw calls is to merge the meshes, either before or after export. This will work as long as the desks DO NOT move / rotate.
On the Array modifier, must admit I do not even know what that is. You are doing it with instances, so might be the same issue.
Up shot is it might be something which cannot be done.