First you might try a new dipstick rubber seal, which should be available from your parts supplier. It fits/stretches over a washer that's crimped in place on the dipstick. Cut the old hardened one off (once you have the new one to fit, obviously).
This is assuming that the dipstick is a fairly loose and sloppy fit.
If the dipstick is a normal fit and keeps popping out, that is symbolic of a much larger problem - excess crankcase pressure - which is possibly caused by piston ring problems. However, you were on the right track with the cleaning of the breather - have you checked/cleaned its pipe all the way through to where it joins the intake system?
-Alex