仕方なく<hoge>で括って、<hoge><p>1</p><p>2</p></hoge>で読ませてsaveHTML($htmlDocument->querySelector('hoge > *'))したら、<p>1</p><p>2</p>が取り出せるのかと思ったら、それもルートレベルが複数になるので<p>1</p>しか返ってこなくて、結局全部取り出してstr_replaceで外側のタグを消すとか言う原始的な処理になった。
PHP8.3以前でDOMDocumentを使ってるときは大丈夫だったんだよな。そっちが壊れてたのかもしれんが。