I know it's been almost a year, but I signed up to answer you since no one else was. Yes it's possible to use a Pi HAT and communicate using GPIO. I'm currently using this HAT: https://www.waveshare.com/wiki/SIM7600E-H_4G_HAT
Communication is over UART using AT commands. In my case the serial port I need to use is /dev/ttyS0 (Pi 4B), though it may be different for other Pis (especially a Pi-Zero).
The easiest way I've seen to use the HAT is to download the ppp package (sudo apt install ppp). Before configuring ppp, connect to your HAT using something UART capable. I've been using screen (sudo apt install screen). Run the command sudo screen /dev/ttyS0 115200 and type "at" followed by the enter key. You should get an "OK" repsonse. If you don't, you need to set up your UART properly (ctrl+a,k,y to kill the screen).
Once you get a response (i.e. UART is working), you can configure ppp by using the instructions here (adapt to your situation): https://www.waveshare.com/wiki/SIM868_PPP_Dail-up_Networking. Keep in mind that, by default, the UART for this particular chip/HAT runs at 115200 so that will be your maximum internet connection speed too. You can change that later using other AT commands. See the AT command manual for this particular chip (SIM7600): https://www.waveshare.com/w/upload/5/54/SIM7500_SIM7600_Series_AT_Command_Manual_V1.08.pdf.
Hope that helps and it's not too late.