You will likely NEVER get a cat to stop peeing or pooping on carpet if they have decided to start. Even if you did, they cannot help the hairballs. My advice in this order:
1) Get Feliway plug-ins, like cat prozac, she is old and this is a BIG change for her and she is clearly stressed.
2) Get vinyl, laminate, tile, or hardwood floors in as much of the house as possible. Seriously, do it bit-by-bit if you have to. I once paid $600 (total) to have a low-grade but pretty vinyl "wood" in a 700 sqft apartment. In my own home, I splurge and pay a couple grand to have all of my 2700sqft house decked in the top-of-the-line vinyl (EVERYONE thinks is wood, but far more durable). Small price to pay for pride in my house again.
3) CLOSE the bedroom doors. Limit where the cat can go. Free and simple, nuff said. See step 2 for areas you cannot keep her out of.
4) Try no to freak out. He loves this cat and any ultimatums will not bring marital harmony, let alone bliss. Not to mention, who would want to marry a jerk who would throw out a helpless cat after a 13 year commitment. Trust me, his devotion is a GOOD sign here.
I have 5 cats, I have had for 13 years and then became allergic to 6 years ago. This is how I have coped and it has helped tremendously. Remember, animals are a stewardship we should take seriously. They are not expendable, nor disposable.
Take this opportunity to teach your son how important it is to keep your word, not just when taking an animal into your home, but always. And how he can creatively problem solve to find compromise with other people. Priceless lessons. Good Luck!