Todos esos str_replace() que usas equivalen a las funciones:
stripslahess()
htmlentities()
Revisalo en
www.php.net. De hecho la función htmlentities() te permite seleccionar que tag's HTML permitiras (por ejemplo tu <br>) .. Pero, lo ideal es que primero apliques tus funciones htmlentities() y afines y al final apliques tu nlr2br().
Un saludo,