Como corrigir HTML mal formado com o HTML Agility Pack?

Eu tenho esse HTML mal formado com tags sobrepostas:

<p>word1<b>word2</p>
<p>word3</b>word4</p>

A sobreposição também pode ser aninhada.

Como posso convertê-lo em HTML bem formado com o HTML Agility Pack (HAP)?

Estou procurando esta saída:

<p>word1<b>word2</b></p>
<p><b>word3</b>word4</p>

eu tenteiHtmlNode.ElementsFlags["b"] = HtmlElementFlag.Closed | HtmlElementFlag.CanOverlap, mas não funciona conforme o esperado.

questionAnswers(1)

yourAnswerToTheQuestion