Let me say here, for disclosure sake, that I am bisexual – in the clinical sense of being sexually attracted to both males and females. I do not, unfortunately, enjoy hanging out with other 'LGBT' people because I find their personal habits and fashion personally disturbing.
That said, I believe there are two lines of attack to protecting people's right to a given behavior – on one hand, you must make it legal, and on the other, you must use the power of persuasion to make it socially acceptable at least to some extent, or your legality will be an empty shell.
The problem with these people is not that they are gay, as many people seemed to suggest in this thread, but that they are leftists.
Leftists, I remind you, believe that freedom isn't just about 'negative rights' (being protected from government action), but about the government coming in and assuring your 'positive rights' (assuring you receive the same social position as people who do not share your gayness or whatever).
It is part of legitimate activism to protest anti-gay restaurants or churches. However, once you start asking the government to destroy these people, or using violence to assure 'positive rights', then you are actually acting AGAINST freedom.
However, where I disagree with you is in your judgment that this immoral behavior is a function of their homosexuality).
I believe firmly that the number one corrupting and immoral factor in Western civilization is not sex of any kind, but rather statism.
It has corrupted to the point of being insalvageable multiple independence and liberation movements throughout the globe. The LGBT rights movement, feminism, anti-racist and national liberation movements, all have been affected by the cancer of the State.
The fact that a lot of LGBT people cling to the State as their protector from intolerance, however, should not serve as an argument against my prime suggestion:
Namely, that government should recognize the union contracts between gays.