Slab-jacking, done by someone who knows what he's doing, is the logical fix for your problems. It can get a bit pricey, especially if paid for by a metered pump of material going into the holes. We used Uretek for raising concrete bridge approach slabs in NM when I was with the DOT there, and were quite pleased with the results.
I would get a quote or two from someone doing it for residential work, and make it on a lump sum basis (to avoid the unnecessary surprise of large voids, etc.). And finish if off with a heavy bead of urethane sealant along the joint line at the house foundation.