give your card a variable called "SpaceUid", in it you store the uid of the space it will overlapp.Once that is done make it so that when the card overlapps another card it switches its uid from "".beneath that event make a foreach card condition in which each card picks a space using the stored uid and then sets its position to that space.
I am not sure how to switch 2 variables with eachoter but i am pretty sure that there is a way to do that using arrays or dictionary or other ways of storing.
Maybe you can have each card have a "PastSpaceuid" variable that saves the past uid...
ps.if you have a problem after this send the link to your c3 file so that i can help you make the feature,but also explain exactly what your game is about so that i can make a feature that fits what you want.