Your girls are probably hitting 0 libedo. When that happens happiness drops drastically. Matron doesn't deal with happiness and libedo, only tiredness and health. There are items you can buy to raise happiness and libedo. Free time will raise both. Items girls buy have nothing to do with the generated store list we see, but they come from the same list of items. As far as I can tell, the matron won't stop a girl from getting addicted to drugs, but will confiscate drugs once she is. Stats for drug addicted girls will drop radically until it's dealt with, and letting her have the drug while addicted seems to slow that crash.
Libedo is harder to raise than happiness, when happiness dips below 95% I always check libedo first, and if it's 0 I give her free time until it's back up through both items and rest. Getting happiness to 100 seems to raise libedo faster as well.