Peter, can you give us a picture of the "TFT-controller"? The name suggests an LCD display. As best I recall, the base GRBL platform, using an Arduino Uno or Nano, does not have enough memory (and probably not enough output pins) to handle an LCD display, so if there is one on your CNC, either this is based on a micro-controller board with more capacity (an Arduino Mega or a 32-bit implementation), or there are two micro-controllers involved. Your description of "connecting the Arduino directly" makes me suspect the latter.
If this is the case, then there is presumably a base GRBL setup using an Arduino Uno/Nano, which handles the real-time motion control and which stores the key $-parameters that determine, e.g., how many steps / mm for each axis. But then there is a second micro board, possibly another Arduino, or possibly something like a Raspberry Pi; this micro is handling the LCD user interface.
If this second scenario is true and I have described it correctly, then this is likely where much of the confusion above is coming from. You are attempting to use TWO competing user interfaces at the same time. A program like GRBL-Panel or UGS is expecting to connect directly to the base micro-controller (typically an Arduino) running the GRBL firmware. These programs handle the user interface, and send G-code to the the Arduino; the GRBL firmware running on the Arduino translates the G-code into the real-time signals needed to move the steppers and read the sensors. These programs also will send the commands to read and set the $-parameters on the Arduino / GRBL firmware.
But if you have a second micro, it is running another user interface, interacting through the LCD. Presumably there is at the very least a rotary / click control that allows you to scroll through menus. Likely there is also an SD-card slot; you can load a G-code program onto the SD card, put it in the slot, select it via the LCD user interface, and run it. Note that this second micro may think it is the only user interface, the only one sending the G-code to the Arduino, and the only one that stores, reads, and sets the $-parameters on the Arduino / GRBL firmware.
Now, if the last sentence above is true, and if you attempt to hook up GRBL-Panel or UGS to this second micro, you have a user interface attempting to send G-code (including setting the $-parameters) to the Arduino, but it is getting intercepted by another user interface that wonders what the heck you are doing.
Again, the disclaimer - all of this assumes that I have described your system correctly, and I could easily be incorrect - it is hard to diagnose at a distance. For example, it could be that the second micro is more like Marlin on a 3d printer - Marlin provides a very basic user interface via LCD display, but it also knows how to accept G-code coming in via the USB port. So ... pictures, especially pictures of the electronics, may help!
If this is the case, then there is presumably a base GRBL setup using an Arduino Uno/Nano, which handles the real-time motion control and which stores the key $-parameters that determine, e.g., how many steps / mm for each axis. But then there is a second micro board, possibly another Arduino, or possibly something like a Raspberry Pi; this micro is handling the LCD user interface.
If this second scenario is true and I have described it correctly, then this is likely where much of the confusion above is coming from. You are attempting to use TWO competing user interfaces at the same time. A program like GRBL-Panel or UGS is expecting to connect directly to the base micro-controller (typically an Arduino) running the GRBL firmware. These programs handle the user interface, and send G-code to the the Arduino; the GRBL firmware running on the Arduino translates the G-code into the real-time signals needed to move the steppers and read the sensors. These programs also will send the commands to read and set the $-parameters on the Arduino / GRBL firmware.
But if you have a second micro, it is running another user interface, interacting through the LCD. Presumably there is at the very least a rotary / click control that allows you to scroll through menus. Likely there is also an SD-card slot; you can load a G-code program onto the SD card, put it in the slot, select it via the LCD user interface, and run it. Note that this second micro may think it is the only user interface, the only one sending the G-code to the Arduino, and the only one that stores, reads, and sets the $-parameters on the Arduino / GRBL firmware.
Now, if the last sentence above is true, and if you attempt to hook up GRBL-Panel or UGS to this second micro, you have a user interface attempting to send G-code (including setting the $-parameters) to the Arduino, but it is getting intercepted by another user interface that wonders what the heck you are doing.
Again, the disclaimer - all of this assumes that I have described your system correctly, and I could easily be incorrect - it is hard to diagnose at a distance. For example, it could be that the second micro is more like Marlin on a 3d printer - Marlin provides a very basic user interface via LCD display, but it also knows how to accept G-code coming in via the USB port. So ... pictures, especially pictures of the electronics, may help!