So all your mounts (the rubber damped ones) are on and tight, and the springs are both on (they should be pretty hard to get on if they aren't broken or stretched), new O-rings/crush gasket and it's leaking bad enough to run with the spark arrestor plugged? Make sure the pipe is full inserted (both o-rings should NOT be visible) in the head, and make sure you've removed any old gaskets, sometimes they are hard to see, but you can usually pop them out with a flat blade screwdriver. If all that is good carefully inspect your header pipe of damage, holes, cracks, as well as the cylinder head itself. Some folks will use hi-temp gasket sealer on the head/pipe joint (I've never done it so can't comment as to its effectiveness). Certainly sounds as if something is out of whack.
I was having the same problem last year with my 95 KDX 200. I realised that the cylinder hole where you mount the exhaust was worn and even new o-rings didn`t seal well enough. Mine was 3 to 4mm bigger than the exhaust flange. To fix this I machined a bigger flange for the exhaust tip with grooves for the o-rings, cut off the old one, welded the new one and it solved the problem.