これらのタグの間のコンテンツを置き換えて、タグを保持する必要があります
$source="Original string <p>bal bla bla</p>**** <!--{date}-->REPLACE ME!!!<!--/{date}-->"
$replaceText = '2012-06-14';
$start = '<!--{date}-->';
$end = '<!--/{date}-->';
preg_replace('#('.preg_quote($start).')(.*)('.preg_quote($end).')#si', '$1'.$replaceText.'$3', $source);
結果は次のとおりです。
"Original string <p>bal bla bla</p>**** 012-06-14<!--/{date}-->"
開始タグと 2. アイデアがありませんか?