Brian, I feel your pain. Been through it a few times. I finally came up with a procedure that I follow on all my new I.C. Engines.
There are four areas that can cause compression or lack of compression problems.
1) Seal between piston & cylinder
2) Seal between head and cylinder block
3) Valve leakage
4) Spark plug leakage.
1) To check the seal between the piston & cylinder I make a flat plate and gasket with the same bolt hole pattern as the head and secure it to the cylinder block. This seals the cylinder eliminates any problems with valves, spark plug, and head leakage.
I then give the flywheel a spin. It should not go through a complete revolution, but bounce back almost half way through the other direction. If this happens, you have a good enough seal for the engine to run.
If the flywheel spins through a complete revolution, you have ring leakage and must install new rings. I sometimes will even add an o-ring behind the metal ring.
If the flywheel does not go through a complete revolution, but does not bounce back half way through a revolution, the rings are too snug or the o-ring is to tight.
You can put a threaded hole in the plate and check compression with a gage like you would in an automobile engine.
2) To eliminate any leakage between the head and cylinder I add an o-ring to the head and allow about .010 compression on the o-ring. I do this on all of my engines now to eliminate that problem.
3) This is the most difficult area to solve. The one thing that helped me the most was when I started machining my valves in one setup. I think I recall reading that when you made your valves, you turned the stems and then cut the material to length. Later you set up the valves again and machined the valve seat. If you setup in not absolutely perfect, you might have enough eccentricity to cause leakage and maybe enough that you can't even lap the valves in.
When I machine my valves now I set the compound at 45* and first make my valve seat cutter. Next I will machine the stem on the valve. It really helps if you can use a small live center to support the small stem. I then change cutters and while running the lathe in reverse I cut the valve angle on the back side. (did the same on the seat cutter) Then the valve can be cut to length. In most cases I don't even have to lap the valves in.
When I cut the valve seats in the head, I drill, bore or ream the hole for the stem and then cut the seat in one setup. Then move to the next valve seat and machine that one complete in one setup.
4) If the leakage is around the spark plug, a soft copper washer will seal it.
On the exhaust valve, I use a fairly heavy spring. It may add a little ware on the cam & lifter but I don't run my engines that many hours to notice the difference.
I try to have a very small seat area on the intake valve. I use just enough spring to close the valve and rely on the cylinder compression to seal the valve.
Don't know if any of this will help you but it does work for me.
Best of luck solving that problem and look forward to seeing the engine running soon.