I actually am in your son’s position. I am biologically female, and I usually identify as feminine, but I have been known to play with my gender identity. I am a chaste bisexual and I cross dress sometimes. I will never forget the day my parents found out. My mother was devastated and she sometimes still cries about it. My dad doesn’t like it, and he let me know in uncertain terms. Yet he also told me he loved me anyway and wanted me to be happy.
First of all, don’t think you did anything “wrong.” My parents, despite being non-religious, are somewhat traditional in their values, so they did not raise me to be this way. Some people, I think, are just born that way.
My advice is to please, please not overreact. See him as a whole person and don’t let his gay attractions or lifestyle define him. He is still your son, and he makes mistakes and has disagreements like we all do.
Another thing I would suggest is just to give him time. I used to be a hard-core atheist and I just couldn’t fathom how any decent person would reject someone for being gay. Needless to say, this caused me to hate the majority of older Catholics. But as I grew up, and even more so when I joined the Church, I started to see other people as being fully fleshed out people just like me, not caricatures. I started to realize that my 15-year-old self’s idea of perfect and all-knowing isn’t the only viewpoint out there and that you could be a decent person and gasp disagree on some things.
Anyway, underdeath the shock and the anger and the conservatism that used to make me cringe, I see someone who loves his son very, very much and wants nothing but the best. It must tear you apart to me going through this. Anyway, maybe your son is being rebellious, maybe he hates you right now, but he WILL come around as he grows. He will see you as a whole person with real concerns and real love, and not just some jerk that wants to rain on his parade.