bingo!!
ahí esta la causa de tus males:
htmlentities()
http://php.net/htmlentities
te invito a
leer el manual y descubrir, que por dicha función los caracteres propios de HTML quedan escapados en sus respectivas entidades, por eso al leerlos de la BD no salen tal cual creías que eran, osea no como HTML natural...
la solución esta en usar verdaderas funciones para escapar nuestros datos, sin que dichas funciones degeneren su naturaleza... solo eso!!