Would consider:
(1) Assuring valve clearances within spec;
(2) "Wet" compression test (teaspoon of oil in the combustion chamber) -- if psi is same as dry compression test, indicates that a supposedly closed valve is for whatever reason not fully sealing when closed; if psi is higher than dry compression test; indicates that compression is escaping past the piston and rings into the crankcase;
(3) Leakdown test (see below*);
(4) Loosening possible stuck piston rings by introducing some penetrant (PBBlaster, Liquid Wrench, Kroil) or Marvel Mystery Oil, ATF, etc., through the spark plug holes into the combustion chambers, and allow the rings to soak for a few days or a week in hopes of loosening the rings inside their groves.
*
Leakdown Test
A leakdown test injects air pressure through the spark plug hole to pressurize the combustion chamber, and then determining where the compressed air escapes from the combustion chamber.
Can perform a poor man's leakdown test by introducing compressed air into a spark plug hole and listening to where it escapes from the combustion clamber. This may be done at TDC or any other cam positions where both valves are fully closed. Top dead center (TDC) is when the piston is at its highest position. An easy way to tell TDC is by alignment of the T mark with the case mark when viewed through the timing window.
May introduce a spurt of compressed air by using a rubber cone-tip blow gun (rubber air nozzle) held into the spark plug hole. And of course keep holding it in position to keep air from coming back out the spark plug hole while listening for escaping air at other places. The air compressor should not be running while listening because the noise will likely drown out any sound of escaping air.
May alternatively use a portable compressed air tank.
Air heard escaping from exhaust port indicates exhaust valve not fully closing (perhaps too tight clearance or damaged valve or valve seat).
Air heard escaping from carb intake indicates intake valve not fully closing (perhaps too tight clearance or damaged valve or valve seat).
Air heard escaping from crankcase breather indicates loss of compression past rings into crankcase (perhaps worn piston rings or cylinders).
Air heard escaping from head gasket area indicates indicates loss of compression past head gasket (perhaps due to a blown head gasket).
A leaking valve may sometimes be resolved by adjusting the clearance to within specs.
A leaking head gasket may sometimes be resolved by torquing the head fasteners when the engine is stone cold (such as after sitting overnight).
Good Fortune!