I'm going to post what I'm sure will be a very unpopular opinion:
When hens begin to cannibalize each other, it's nearly impossible to stop them. There are many reasons that they start doing it, and very few really reliable ways to stop it.
In my opinion, the ONLY really reliable way is to debeak the offending hens. Cruel? Well, isn't it cruel to intentionally peck at a weaker hen and slowly kill her? And---isn't it better to debeak a vicious hen and let her live out her productive life than to kill her and make soup from her? I can see absolutely no difference from a hen killing another hen than a coon or possum killing a hen.
I'm not talking about the radical debeaking that is done in hatcheries, I'm just talking about removing about 1/4" of the upper beak. This will entail a bit of bleeding, and also some discomfort (probably less to the hen than the person doing it), but the beak will quickly stop bleeding, and it will be tender for several days to a week. The offending hen will immediately cease her picking on the others, and only use her beak for eating. When it stops being tender, she likely will have forgotten her bad habit. If she tries to pick (excuse the pun) up her old ways, she will find that the upper beak is missing, and she will be unable to sieze the feathers/skin of her victims. She will soon become just one of the flock again, and peace will again reign. Good luck!