With 25 gpg hard water and no softener until a year ago, his water heater is probably loaded with hard water scale. I've seen gas and oil water heaters with scale a few inches thick. And electric heaters with scale build up all but up to the bottom element and elements so scaled up you can't get them out of the hole without a chisel.
The hardness in the hot water will vary and can be more or less than his 25 gpg in the raw water but probably is less at the end of a shower and that is why I said test the cold water at the sink. If that is hard, he is exceeding the SFR of the softener or past the time/gallons when the softener should be regenerated.
Fork, why do you have an AN filter when you have 25 gpg of hardness? I ask because I don't think I've ever seen acidic water with that much hardness in it? You said the driller said the TDS was low, which is not a problem. You'd only need that filter if the pH was low; say 6.5 or less.
If you haven't added the hardness the filter is adding to your 25 gpg in the raw water your softener isn't programmed for all the hardness and will allow hard water breakthrough before a regeneration is done. Meaning the softener will run out of capacity before the regeneration and you get hard water through it until after the next regeneration and then without the salt dose set at the max of 15 lbs/cuft of resin, you'll consistently be getting less capacity until you get hard water all the time. Then if you are using less than the 15 lbs/cuft, you must set it to 15lbs/cuft and do 2 manual regenerations with no water use during or between the two. That's the only way to fully regenerate all the resin. Then reset the salt dose for the capacity you need.
You can learn more about setting the salt dose at the link in my signature.