SIM7600A gives an error when executing commands, but works after executing it again
RS232 might be a bit unreliable if used with long cables or crummy cables, but the fact is that across the &quot;distance&quot; of a couple of centimeter from the Pi to the &quot;hat&quot; there should be no problem.
I work with GSM modems in my day job, and never had a problem with RS232. It is more likely you are doing something wrong than that there are communication errors - especially given that they are so reproducible.

Check that you are sending correct line ends.  Many programs will send a carriage return and a line feed at the end of a line of text.  Some only send a carriage return or only a line feed.  For most modems, you want to send only carriage returns.  An unexpected line feed will cause some modems to return an &quot;ERROR&quot; with no further explanation.
Check that the power to the GSM modem is stable.  If the power supply for your Pi is a little weak, the power to the modem may &quot;wobble&quot; when it tries to execute commands.  That can cause errors.
Make sure that you are sending complete, correct commands.  For example, your GPS command (AT+CGPS=1) takes some optional parameters on some modems (AT+CGPS=1,3 mean start the GPS session in UE-assisted mode for some modems.)  If your modem tries to use a default mode that doesn't work, that may cause problems.  In other words, use a more specific command (AT+CGPS=1,1 to start standard standalone GPS.)

Given your description, I tend towards the idea that you are sending mixed carriage returns and line feeds.