The problem I see is in Event 131, under ">Mouse -> On Left Button Clicked on ObjectsDisp"
You have, "Inv -> Delete index Inv.IndexOf(ObjectsDisp.ItemGroup) from X axis."
This can delete the intended object, , or it might instead remove another object with the same item group. However, you always *create* the right kind of object, so you could (as the demo stands) end up with two hoes or two hammers.
My suggestion: Give ObjectsDisp another instance variable named "SlotNumber".
Then, in refresh inventory, Inv -> For Each X element (Event 128 or so) add ObjectsDisp -> Set SlotNumber to Inv.CurX.
Then, in place of what you had, Inv -> Delete index ObjectsDisp.SlotNumber