I had a similar (but less personal) version of this problem for a while, because I once made the mistake of using my throwaway email address for a question on a professional forum that turned out to keep real names attached. I also keep a minimal online presence under my real name in general. So if you googled my name, those forum results typically came up in the top 10 results. I didn't want recruiters using that email because it's not professional, it's not one I do business from, and I generally don't want it associated with my real name.
It's unlikely you'll be able to get a straight and honest answer from recruiters about where they got your old email address. Aside from the fact that many recruiters guard their prospects jealously, there are many reasons why they themselves might not know. And even if they do, and are willing to tell you, it may be a company or system you cannot compel to change. Instead of trying to figure out the source of the misinformation, you'll likely have more luck with correcting the recruiters and letting those corrections trickle backward into the shadow networks of the data brokers.
To that end, what worked for me was a two-pronged approach of gently redirecting the recruiters themselves, while also working to find and remove places where the wrong email was associated with my real name online.
First, if the recruiter wasn't someone I was interested in speaking with, I'd just ignore the email altogether. This encourages recruiters to mark that email as nonfunctional in their systems, without burning bridges.
If it was someone I did want to talk to, I'd wait a while (2-4 weeks depending on urgency), then forward their email to my professional email and reply to their message from my professional email. The replies usually went like, "Hi, thanks for reaching out to me, and sorry for the delay in responding. Your original message went to an old email I do not use and rarely check. The best way to reach me is via this email address, [[email protected]]. Please direct all future communications here."
Meanwhile, I would periodically run a google search of my real name, and look for any results that linked my name back to that junk email address. In my case, the only place it was linked was in that forum, so I sent multiple requests to the forum owners to remove my name and email address from the messages in their archives.
Over the same time period, while not directly related to fixing the email address problem, I was beefing up my online presence under my real name, so that even if the forum results hadn't been cleaned up, they weren't the first things that came up when people searched for me. So I'd also recommend you find ways to beef up your online presence under your current name, so that when recruiters search for you, they find up-to-date information first.
While this approach doesn't directly address the issue of you being outed to recruiters, I'd gently suggest that that may not actually be what's happening. I'm a hiring manager, and I've seen many cases where a person's email doesn't match the name on the resume, even if the email address is clearly in firstname.lastname format. My first guess would be that you have a shared email with a partner, or that you may be from a culture where people have and use multiple different "official" names. Many systems even fill in the email field automatically, so the recruiters may not even see the email address. As long as they address you with your current name and correct pronouns, it's unlikely that you're being outed. (I'm not trans and I may be missing a great deal of the nuance of this situation, so please feel enormously free to ignore this. I just hope it might bring you some comfort to hear that your old email address may not be as revealing as it feels.)