I have 5 Kohler toilets with the canister flush mechanism. They are 8 years old and have been nothing but problems. They stick open constantly and the rings don't last long. The chains get caught and they twist and won't close.
You can't replace them with anything but kohler parts because they are an oddball size.
What may be happening with yours is the rubber ring on the bottom of the canister may have come off or is just bad. Home depot carries them in the store. Kohler has a video on how to replace them. You have to turn the center piece which allows you to get to the ring to replace it.
As for the tube, it should friction fit. You may need a new tube or you might get away with trimming a 1/2" off and seeing if it will stay.