It is also possible the modem in your iPhone might also be contributing. For the iPhone 7 (and iPhone 8), Apple started using two suppliers for its modems. The AT&T/T-Mobile version uses an Intel modem and doesn’t support CDMA networks at all. The Verizon/Sprint/Sim-free version uses a Qualcomm modem and supports both GSM and CDMA networks. While the two modems had similar performance most of the time, there were multiple reports that the Intel modem struggled compared to the Qualcomm version in low signal situations. That might be contributing to your issues.
I had an Intel modem 7 and made sure to buy the sim free 8 this time to get the Qualcomm modem. It does seem to do slightly better in low signal environments. But the difference is not dramatic, and could also be due to the glass back of the 8 being better for receiving cell signals. It’s hard to say how much the modem manufacturer is a factor.