stobbsc
To swap two chess, you could save one UID of chess, pick the other one, then use "action:Swap" in grid move behavior and put the first UID of chess in parameter. It will swap the logic index and physical position.
If you want to move the chess by your self, you could use "action:Swap chess by UID" in board object, it only swap the logic index.
About question 2, I'm not sure what's you means the "inst->clean". Uh... I did not remember I had made this action.
The moving path is stored by UID of tiles. User just pick tile by these UID and do what they want.