In effetti non avevo pensato che il TextWatcher è strettamente legato alla EditText (se noti all'interno del metodo afterTextChanged usi il riferimento alla EditText). Per cui credo sia necessario creare un oggetto diverso per ogni EditText che ti serve. A tal scopo è comodo creare una classe che implementi l'interfaccia EditText in modo da riutilizzare il codice invece di copiarlo ogni volta, cosa peraltro sbagliata dal punto di vista "ingegneristico"!