Thanks for the replies everyone, I'll try and work through from the top...
The Zyxel is an LTE3202-m430. Bought it in 2020 when lockdown sent the local ADSL from ~600k to 74k. It was "used" but I think it was a customer return, there was a break in the power adapter cable, at any rate I used a spare adapter and all worked fine for 18 months. Then it took to having an unresponsive admin interface or spontaneous reboots if it wasn't manually restarted often enough. 4G is now effectively unusable, it reboots every few minutes. 3G is *mostly* ok if it's manually rebooted once a day, but not always – recently it rebooted during a Zoom call. Factory reset doesn't help; I can't reflash because I didn't keep a copy of the firmware and Zyxel seem to have stopped distributing it.
SIMs have been 3, Smarty, and then Asda since they switched to Vodafone. 3 & Smarty give 3-5 Mbps down / 1-2 Mbps up while Asda is 6-8 Mbps down/2 Mbps up. Speeds are usually lower at weekends and in the tourist season so I've always assumed they're mostly driven by contention rather than signal quality.
The B310. Not sure what firmware version it's running. It's Huawei branded and said there aren't any updates available. Admin interface not loading at the moment, so another reset in order before I can check the exact version.
I did try manual network selection; this works ok with a 3 SIM in there, but with the Asda SIM it mostly says "failed" rather than producing a list of networks. The two times it came up with the list, it then failed to connect to a chosen network.
Hadn't thought that there might be a problem with the Asda SIM card. It's back in the Zyxel at the moment, I'll have to investigate at an hour when I can take it out without cutting off the rest of the family's internet access!
Never heard of the idea of factory reset when swapping SIM cards before. I'll try that when changing them over later!