Do you have PureCloud Edges located on your premises, or are you using PureCloud Voice?
Based on what you describe, it sounds like the calls are coming into an Edge on-premises and being routed to the physical phone quickly, but the Internet connection is not keeping up so the alert sent to the UI doesn't get there when the call gets to the phone.
The web-based phone (WebRTC) is completely dependent on the Internet connection to know that a call is coming in, which is why it doesn't alert and calls end up going to voicemail.
I'd start by getting some packet captures on the Internet connection (whatever device you can...port mirroring on the switch, for example, to a laptop) and see if the messages to the Client are coming in at the same time the calls are alerting the hard phones.