I have an Agco-Allis garden tractor with a 20hp Kohler motor.  At the end of the season last year, one of the rocker arms came loose and went through the valve cover.  I fixed this issue, and put everything back together- the engine would not start.  It was backfiring and carrying on, and occasionally would get close to starting.  It seemed to me like a timing issue, so I checked for spark on both cylinders and everything seemed to be fine.  Long story short: I pulled the motor and found that the keyway on the flywheel had sheared off and spun about 1/4"- essentially throwing the motor out of time.  I replaced the keyway, reassembled and reinstalled the motor, and it ran fine.  I also replaced the fuel lines and fuel filter, mainly because the fuel line to the crank case was nearly worn through.  After mowing with it a few times now, it suddenly lost power whenever I have the PTO engaged.  It seems to idle ok, and achieves full RPMs under no load- just not when the PTO is engaged.  It will run the deck without stalling, but will not achieve full RPMs.  If I watch the fuel filter, I can literally watch it be sucked dry of fuel regardless of engine speed.  I thought that the fuel pump could be the culprit, so I replaced it today with no noticeable improvement.  My thoughts were governor or head gasket.  I believe that the fuel pump is driven off of crankcase vacuum which could be affected by a blown head gasket, right??  This would explain the shortage of fuel and lack of power to the motor.  Any insight would be greatly appreciated, as I hate to spend unnecessary time/money trying to diagnose this issue.