Как на javascript найти и заменить в тексте параметр?
Тебе надо пробежать по документу и выбрать все текстовые ноды, таким образом ты не затронешь другие элементы и их поведение. Заменяя все ты создаешь новый документ и для него надо заново все инициализировать. Чтоб избежать всего этого надо работать с текстовыми нодами.function replaceText(text, textToReplace) {

	function replace(nodes) {
  	nodes.forEach(node => {
      
      if (node instanceof HTMLScriptElement) {
      	return;
      }
      
      if (node instanceof HTMLStyleElement) {
      	return;
      }
      
    	if (node instanceof Text) {
      	if (node.nodeValue.match(text)) {
        	node.nodeValue = node.nodeValue.replace(text, textToReplace)
        }
      }
      else {
      	replace(Array.from(node.childNodes));
      }
    });
  }
  
  replace(Array.from(document.body.childNodes));
}

replaceText("{DATETIME}", "___WwW___");snippet
https://jsfiddle.net/space2pacman/gunb0v7a/20/function replaceBreadCrumbs(label, text) {
  // функция работает до тех пор пока в тексте есть метка {DATETIME}
	if(!document.body.innerText.includes(label)) return false;

	var elements = document.querySelectorAll("*");
  var elementWithLabel;
  
  for(var i = 0; i < elements.length; i++) {
      // Проверка срабатывает на многих элемента, в которых вложенность но останавливается на последнем
      // <div><b>{DATETIME}</b></div> попадает под проверку
      // <b>{DATETIME}</b> - попадает и будет последний в проверке.
      if(elements[i].innerHTML.includes(label)) {
  	  elementWithLabel = elements[i]
      }
  }
  
  elementWithLabel.innerHTML = elementWithLabel.innerHTML.replace(label, text);
  // Запускаем функцию заново и ищем метки
  replaceBreadCrumbs.apply(null, arguments)
}

replaceBreadCrumbs("{DATETIME}", "03 мая 15:00");