Зависит от того, что вы хотите сделать программно после анализа текста. Если вы не хотите делать с этим ничего особенного, используйте следующий код:
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml("<div><form>form and div</div>form</form>");
doc.Save(Console.Out);
отобразит точно такую же строку, то есть:
<div><form>form and div</div>form</form>
Поскольку библиотека была разработана с нуля, чтобы максимально сохранить исходный HTML.
Но с точки зрения того, как это представлено в DOM, и с точки зрения ошибок, это другая история. Вы не можете иметь одновременно 1) перекрывающиеся элементы 2) XML-подобный DOM (который не поддерживает перекрытия) и 3) без ошибок.
Так что это зависит от того, что вы хотите делать после разбора.