How old is the young woman, and does she still live with you?
You sound a little like my MIL, giving past the point that you want, and then feeling resentful. This isn't some stranger, this is your son's girlfriend, the mother of your grandchild. Did you want her to live with you? Was this so that you could be involved with the baby, by your choice? Or did your son pressure you into it?
It probably was wrong for her to spend all of her money on herself and not think of her responsibilities, but apparently she has not been expected to have responsibilities before, so she didn't think about it. Plus, if she's spent two years with no way of even getting herself tampons or a bottle of nail polish, she may have been so glad to finally be able to provide something for herself.
If she and your son are a couple, then they are living together, in your house. The expectation has to be on your son. What do you expect the contribution to be for the family of three living in your home? Why didn't your son provide the formula and diapers? Is he not supporting his family? It is his and the girlfriend's job to provide for their child. They should be paying as a couple for whatever you expect - groceries, utilities, etc. You should not be concerned about how you think that she should repay your son's friends - that's between her and them, and your loyalties should be toward HER, she is the mother of your grandchild, your son's partner, perhaps your future DIL. She IS your family now. And quite frankly, if she has a baby to provide for, buying gifts for others is a frivolous purchase. Her responsibility is to provide for her own needs and her share of the baby's needs, split with dad.
You should not be involved in fights between her and your son. They are a couple and it is not mommy's business. You need to speak with your son to tell him that his loyalties must lie with his partner now. It isn't you and your son as a united pair and she as the outsider. Your son and the girlfriend are the united pair, and hopefully you will stand with them, but if there is a disagreement, his loyalty should be to her, and son should not get you involved in their problems.
You must have invited her to live with you. She could instead have been with her own family, or public aid, or suing your son for child support. She could have worked all this time, she and your son could have had jobs with alternating hours so one could always work while the other took care of the baby. You took on more than you wanted and now resent her. But you are doing these things for your son. It is his baby that you bought formula and clothes for, a baby that he made and is apparently unable to support. Please don't take that out on the baby's mom.