Unless the town hall is paid for with taxpayer dollars or held on government property, it's a citizen who happens to be in Congress having a private event with their political supporters.
Same as a political party convention or fundraiser dinner,.AFAIK.
(And, depending on state law, even a function on government property may be legally private.)
The public put their name in a hat and submitted questions for presidential debates. Those people were picked to speak. Still was open to everyone. This is not a town hall.
I assure you that anyone who ever put on a town hall debate, including the League of Women voters and definitely the TV networks, screened the questions and reserved the right to exclude anyone they chose to.
No debate or political event since well before Nixon/Kennedy has been "open to everyone".
Elected officials do not hold town halls for campaign purposes. They are meant to be an official act to address actual constituents. They are not for fundraising or rallying.
I think the main point is that non-republicans are still forced to pay taxes, but the elected official is denying those people representation. If he wants to hold a non-republican only event for equal representation, then that's a really dumb way to do it, but at least is closer to acceptable.
It's the "taxation without representation" thing, not the "blocking a demographic from their private event" thing.