Egg eating is a wicked bad habit. AS mentioned, once it starts it can be impossible to stop.
Egg eating is not due to calcium deficiency, but weak egg shells are easier to break into. So add calcium to ensure they are strong.
It is also not a protein deficiency, so don't worry about feeding them cat food or other extra protein sources.
Golf balls sound good, but unless you are collecting the eggs fast, they'll just peck at both until they hit the good ones.
Egg hollowed out with chili pepper stuffed inside are useless, too - chickens aren't affected by capsaicin, the hot element in peppers.
Egg eating is normally the result of an accident; some clumsy hen stumbles over the egg and cracks it, she spies the crack and starts pecking at it.
Or, she sees a spot of poo clinging to the shell and goes to pecking at that. Once one hen starts, the others follow.
So keep a clean nest. If you are getting eggs with feces on them, clean the nest and keep it that way.
Then, get out there and collect the eggs - ASAP. Dont leave them around for the hens to mess with.
Try hanging a curtain over the nest front so it is dark. Chickens wont peck at or eat what they cannot see.
Keep lots of soft litter in the nest for cushion.
Rollaway nests are an option, so the egg rolls out of reach where the hen cant get at them after laying.
In extreme cases, culling the offending hens is the final answer. It's easy to tell which one is guilty, too.... it'll be the one with egg on it's face (which is one theory as to where the term comes from).