I was in a related situation 3 years ago with DD. I wanted to name her Charlotte - I am passionate about the name. In my mind, it is a eloquent but feminine name. When DD was born, she was so sporty there was just no way that name fit.
So we decided on Lea. And I was OK with it, but not 100%, because I waited months to have her name officially decided (you can wait 6 months here). What bothered me is everyone in this area pronounces it Leia - like princess Leia in star wars - which was so NOT our intentions. One woman even kept correcting me "you mean Leia" until I said that since I am her mother, I might have an idea what her name is.
Anyway, we kept the name Lea. Why? We did not/do not actually hate or even dislike the name, we just didn't like everyone else's interpretation of it. And because DD is a tough girl, so if someone mispronounces her name, she corrects them on the spot. And mostly because the name really does fit her so well. The name grew with her, and fits her 100%. If I were in your shoes however, I for sure would change it, regardless of financial cost. Your son obviously hasn't grown into his name, it still doesn't fit. You and your H don't think the name fits, he himself doesn't feel it fits. How can he feel comfortable in himself if he can't be comfortable in his name?
Even better, you all agree that Cortez fits him so much better. And he identifies with Cortez. So, yes, I would change it.