In your original code:
$string = preg_replace( '<br\s/>' , '\n' , $string);
...preg_replace is considering the < and > to be the regex delimiters. Try this:
$string = preg_replace('/<br\s*\/?>/i', "\n", $string);
I tweaked things a bit to match all possible formats, including <br>, <br/>, <BR />, etc.