I think I've figured out the issue for real this time. It's seems any time an update is made to a queue that an inbound rule routes to, all but one rule entry for a given DID/Sip Trunk is being removed that routes to that queue. So for example, I have a training queue with 7 inbound rules all with the same DID in 3cx. If i change the order of agents in the queue, it removed all but 1 entry from the rules. It seems to be the same SIP Trunk every time no matter which queue. Under the Ports column it [10002]. The other entries just disappear.
I have a couple of queues that don't get directly routed to. The rule for them goes to a digital receptionist IVR first, then to one of two queues. If I make changes to those queue's, nothing happens to the rules involved or the digital receptionists.