__>есть <TD id = value><font>text</font></TD>
__>в случае get_innerText он берёт то что между тегами. а когда идёт put_innerText
__><TD id = value>put_text<font>text</font></TD>...
__>если между <font></font> ничего нет — он просто убивает фонт (почему? не знаю...).
Так и должно быть

Что непонятно-то?
<TD> TD After Begin <FONT> inside font </FONT> TD before end </TD>
>>> print elem.innerText
"TD After Begin inside font TD before end"
>>> elem.innerText = "a b c"
<TD>a b c</TD>
А куда он по-твоему должен запихать "a b c"? Внутрь <FONT>? Или до него? Или после? Или "а" до, "b" внутрь и "c" после?

. А если там 8 мегабайт сложного html-текста внутри с параграфами, таблицами, картинками и разными цветами — в какой из 400000 внутренних тэгов этот текст надо положить?
Вообщем, все очень логично. Никаких стилей никуда не слетает. В данном случае тебе надо либо перенести стили в <TD style class id> в виде CSS, либо устанавливать innerText элементу FONT, а не TD.