Может быть, у загружаемых вами HTML-данных уже есть угловые скобки, экранированные в HTML-объекты? То есть <становится & lt; в то время как> становится & gt;
Это приведет к описанному вами поведению. Визуальный редактор будет показывать то, что выглядит как необработанный HTML, а не результат рендеринга HTML.
Чтобы исправить, либо (i) запретите эту кодировку, либо (ii) быстрый и грязный подход, выполните поиск и замену в HTML перед передачей в ваш API. Что-то вроде:
html = html.replace('<', '<')
html = html.replace('>', '>')
должен сделать свое дело.