Если вкратце, то пришлось немного перераотать логику
LabelWithWidgets, чтобы он правильно расчитывал длину текста с изменёнными тегами, так как длину строки и индексы для вставки виджет без учёта тегов. Каждое стилевое выделение это какой-то тег, к примеру выделение жирным — это тег <b>, и индексы начала и конца текста для строчки <b>asd</b> расчитываются не по ней, а по отрендеренному варианту — то есть просто asdКазалось бы, звучит просто, но на понимание факта, что он считает текст не по данному ему тексту с тегами, а по отображаемому ушёл весь день.