Have you tried replying with a little formula, and only with that formula?
Say you decided on one of these:
Oh, there's a question. (Big smile)
Why, thanks for asking! (Poker face)
That's a bit of prying! (Eyebrows raised)
Then every time you need it, you trot out the very same canned phrase...again and again. Gets old fast, right? It means You ask X—and that is exactly what you're asking—and you will always get Y.
It's not exactly rude. You never need to tailor your reply to the exact snoopiness introduced. And it makes its point.
This is actually similar to a parenting technique I learned called 1-2-3 Magic, where all misbehavior gets the very same Time Out, tailored to the age but not the infraction. Using the formula removes most of the emotion. Like gravity, it's a fact of life and not an angry punishment.