The problem resides in the generated dom.php within the parse() function.
$html = preg_replace("/<%" . strtoupper($key) . "%>/",$value, $html);
should be:
$html = preg_replace("/<%" . strtoupper($key) . "%>/", str_replace("$","\\$",$value), $html);
in order to escape $'s in $value to prevent preg_replace() from removing the '$xx' from a passed in value of '$xx.xx'.
I see several calls to preg_replace() within your generated code so you should escape them as well in order to prevent problems elsewhere in your code.