Actually, it sounds like you have burnt or carboned up valves. I would buy a head gasket, pull the head, clean everything, use some carb cleaner to clean the valves and make sure they're moving freely, and re-assemble. If it's running good when cold, and not using much oil, valves are the likely culprit, and VERY common in old Kohler engines. It's worth the $20 for a head gasket to give it a try. Otherwise, you're looking at several hundred dollars to bore and do a complete rebuild. Locally here, I use a NAPA shop where a guy is known for rebuilding Kohler engines. He charges $75 + Parts to bore out, install new piston, re-install crank and bearings, and install new valves. Typically, parts included, this ends up being about $200, +/- $50.
Another thing to check is the coil. If a coil is worn or incorrect, they can overheat and stop producing spark at the strength they should. It's another common problem when someone has swapped out a coil and use a non resistor coil where a resistor coil is needed. They all look the same, and people all think they are the same, so it's not a suprise to find the wrong one installed. An overheating coil will produce the exact kind of running that you are experiencing.
Just some thoughts, found out the hard way.
Cub Cadets 682, 1811, 1864, Simplicity Legacy XL 4x4 Diesel with FEL, 60" mower, 50" Tiller