Ok, so now it should work this way:
There are two layers of stats. One normal and one for items, that is supposed to prevent item that pushes girl above her max value, when unequipped, taking her stats away with it.
So All items added to that second layer, however since when we ask for stats value, we get normal + secondary, meaning that consumables and misc adding to secondary that is limitless would simply max the girl out, even when it comes to stats like health/fatigue/mp and those values could never go down unless second field was lowered by consumable items again.
Now it works differently:
All normal items still just add to secondary field unless stats are ['health', 'mp', 'fatigue', 'joy'] (to prevent immortality or tirelessness).
Consumable/Misc if temporary add to the first layer if stats are: ['health', 'mp', 'fatigue', 'joy'] (to prevent immortality or tirelessness) and to the secondary field if any other stat. If not temporary, it just adds to the first layer.
If it all works, it should solve most issues but we can keep trying to get this just perfect

I guess it's a combination of code and items design working together.