Show up where they are and simply turn your back against them.
No signs, no posters, no speeches, no dialogue. Nothing. Just turn your back, keep silent and ignore them.
When neo-nazisim started gaining a foothold in my home country in the early nineties, 20000 people showed up at a speech by the made agitator. Just as he started speaking, they all simultaneously turned their back. The symbolism is strong- it's part of our reaction to disgust.
Whilst they may exercise the right to free speech, you should exercise you right to not listen.
better yet... don't bother turning your back. [They thrive on attention, esp. negative attention]. Ignore them by having a coffee discussion across the street from them and talk about something boring and "small talkish" they should be ignored like the lunatics they are. And when they recieve no attention, they will begin to lose power.
Instead of counter protests emphasizing their lunacy by showing nonsense signs, perhaps it is better to emphasize how normal we are so that they will look all the more foolish in comparison.
You like some speech, you hate other speech. That is clear sign of not doing it right.
Someone is out there right now trying to shut you up. You speech makes them anxious. They want you to stop. They will try to stop you.