Not sure if this is a homing/calibration problem?

Homing is a process that occurs in the grbl code that resides on the Arduino. Programs like Easel and most G-code senders will have a command that you can use to tell grbl to home the machine (UGCS uses $H as the homing command).

Once the machine is homed then you can move around among the programs that send G-code and Machine zero is still valid unless you perform a command/function to change it or remove power from the Arduino.

There are lots of things that can cause position errors. Start by reading this: