The only time I've had that problem, the pivot pin for the catch was worn almost all the way through. Was a long time ago and I've forgotten the details, but I found some stock to match and cut a replacement pin. Very frustrating trying to hold it all in position against the spring, while tapping the new pin in.
On mine, there is no gasket in the cap. There is some sort of material in a groove in the body, but it's more of a cushion for the cap than anything, IMO. The cap itself does not seal tightly. I just left it alone, but I'm sure you could find some O-ring stock (or better yet, square or X section stock) that would fit it.