Unfortunately when it comes to immunoassay screens the reasons for a false positive or false negative are as numerous and diverse as there are companies that make them.
Specific to our region but may/may not be relevant to yours too: Percocet actually contains oxycodone which, while it is an opioid, is actually detected in a separate oxy- opiate screen, not the classical opioid screen.
Hydrocodone is also rapidly metabolized into hydromorphone and opioid screens are not very good at detecting hydromorphone. If it’s been more than a few days since your last dose, I would not be surprised by a negative result.
False positives are a whole other can of worms. It sounds like you have chronic pain and even common painkillers like advil/ibuprofen can give a false positive THC. The different families of drugs being screened for all have different performances and the medical review officer for the area will know best how to correlate the results with the medications you declare.
In either case, confirmatory testing will back up your claims so I wouldn’t worry too much. Trust me, your situation is definitely not a rare one! I used to get a lot of calls from seniors asking why their amphetamine screen was positive (good old vicks).
I hope that eases your fears a bit. Sorry if that was a bit wishy washy though. That’s just the nature of screening tests.