I apologize for hijacking this tread, but my situation is very similar and it looks like the OP has solved his issue. As you can probably tell we have had a week of clouds and rain here on the east coast and so I needed something to do
Summarizing from previous posts:
My gps module is a standard Ultimate GPS from Adafruit. Originally, I had it attached to the PIO pins, but then opted for a serial USB connection so I could just plug it into one of the USB 2.0 slots on the RPi 4. I have 'rules' set up so that the gps is recognized on dev/ttyUSB0 --simlink to -- /dev/ttyGPS. I am trying to figure out why the gpspanel and astropanel work when I boot from an SD card, but not when I boot from the SSD drive, whose image came from the same card. There does seem to be some difference between the version, so I must have done some update with the SSD in the past couple of months (although I don't remember the gpspanel ever working in the SSD configuration).
If I don't modify the /etc/default/gpsd file to include DEVICE = "/dev/ttyGPS", nothing works (not gpsmon, cgps, or EKOS with GPSD and not the gpspanel). If I add that Device line to that file than everything but the gps (and astro)panels work fine. The gpspanel just sits there waiting for a fix, while every other program show a clean 3D fix. The virtualgps is inactive, so there should not be a conflict; both gpsd and gpsd.socket are active at startup after reboot and it looks like only one instance of the gps daemon was started.
it is a bit of a puzzle and I was just hoping that something I 'said' might trigger somebody's memory about a similar situation.
thanks,
Ron