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