to get a backfire when running, either the coils are connected on the wrong cylinders ( so wrong firing order) or there's a lack of compression or the engine is running extremely lean
I'd start by double checking your coil wiring and if you're sure this is OK then I'd repeat the compression test with a squirt of oil in all the cylinders to see if the reading flies up - as this will show if the bores are worn
and if thats OK then check for any leaks after the throttles as any air dragged in here isn't 'seen' by the ECU and so not compensated for and can lean the engine out and can also allow the engine to rev up when not desired causing rough running.
As its a mechanical fault it tends not to turn on the fault light and you can sometimes hear a 'hissing' noise with the engine running.
Check the hose clips for tightness and inspect the trunking for any cracks or splits and also all the vacuum system, the small bore pipes and fittings for cracks and missing parts.
The best way to locate a leak is to have the engine running and warm and then spray lighter gas /propane around each joint in turn. If the engine rev's up you've found your leak.
Now you might think that spraying lighter gas around a hot engine isn’t wise, however the flash /ignition point of gas is about 400°C so you need a naked flame or spark to set it off and I’ve used this method for many years without incident.
Work your way through each possible joint one at a time and you should find it. I use a slightly flattenedpiece of brake pipe and some rubber hose from the can of lighter gas to provide a spraying 'wand' and allow a direct blast of gas into each area, especially those difficult to reach with large implements.
It’s also worth getting the fuel pressure checked as if this is low due to a blocked filter or faulty regulator or even a poorly pump will all result in insufficient fuel being delivered to the engine