Jolly good
You have not fully understood how instanced static meshes work. When you create an instanced static mesh component, all instances tied to that component must use the same mesh. You are changing the mesh of the component, which causes all instances tied to that component to change. If you want different tiles you need multiple different components (one for each mesh). You can use multiple AddInstancedStaticMeshComponent nodes, set the static mesh of each and store the output (of AddInstanced…) in an array of instanced static mesh components. Perhaps you have three instanced (grass, dirt, stone). When you want to add a stone tile you would get element 3 from the instanced static mesh component array and add an instance of this component to the world.
I recommend checking out the 2D example (in the Maps/2D folder). In this map there are examples of picking up weapons, healing potions and trigger plates.