I have created a simple custom grid that uses a grid spacing to calculate where in the world the closest grid space would be, shown bellow.
In any object, the construction script simply gets the current location of the actor and finds the nearest grid tile location to that location and sets the root component (a mesh) location to that grid square.
As I move the object within the world, it exhibits random behaviour, either moving in only one axis, or moving in random directions (Video demonstrates)
Any ideas would be helpful.