Here is a UDF method.
The code contains options to search only column 1 of Towns or the entire sheet.
The code looks at each comma separated word in turn and searched Towns. If it finds a match, the data is trimmed from that point. There is an option to return either the original text or a blank cell in no match is found.
Function RemTown(Data)
Dim Towns As Range, Fnd As Range
Dim txt, t
Dim x As Long
'Set Towns = Sheets("Towns").Columns(1)
'or to seach entire sheet
Set Towns = Sheets("Towns").Cells
txt = Split(Data, ",")
For Each t In txt
On Error Resume Next
Set Fnd = Towns.Find(Trim(t), lookat:=xlPart)
If Not Fnd Is Nothing Then
x = InStr(1, Data, t)
RemTown = Left(Data, x - 2)
Exit For
Else
RemTown = ""
'or return original text
'RemTown = Data
End If
Next t
End Function