const content = parts.reduce((acc, c, i, arr) => {
acc.push(document.createTextNode(c));
if (i < arr.length - 1) acc.push(replace.cloneNode(true));
return acc;
}, []);
subnode.replaceWith(...content);
<b>
и если искать b то тоже html "сломается"?