It seems to me that the only way to combat this kind of thing is by the non-violent protest - obviously most people here will believe that or they wouldn't be here - but it's not just as simple as that. Sadly gay people face the same challenge that hated and downtrodden groups only have - in order to be accepted as normal, you have to be better than normal. Most people in society will not wake up to the fact that any gay individuals is "as good as them" - as moral, as upright, as caring, as honest - until they see, repeatedly, evidence of gay people being more moral, more upright, more caring, more honest than the average. It's not right or fair and it will be a slow process but in the case of a lot of people, that's probably all that will work.
But in the meantime, is needed is for more people in the straight community to stand up and blow the whistle on prejudice and hatred. I think prayer is needed that people in the mainstream churches particularly, people who are not gay themselves, even some of those who still have moral reservations regarding homosexuality, to stand up and say, "No! these people are my brothers and sisters! I will not tolerate hatred. I will not listen to distortions of the gospel. I will not stand by while they are rejected by their families and ostracised by the church". If only a few do it they risk ostracism themselves but if enough straight people stand up for their LGBT brothers and sisters, attitudes may start to change.