You can try just before outputting the data pushing it through the php function:
$string = utf8_encode( $string );
OR
$string = utf8_decode( $string );
Because although you have changed the doc type to utf-8, firefox (in my case) is ignoring this tag and rendering the page in ISO-8859-1. If I go View -> Character set encoding in my browser, and select manually "utf-8" it rectifies the problem with some of the weird symbols I can see on this page.
My guess is - VB was configured not to use utf-8 and your DB tables will not be in utf-8 but probably the latin1 swedish_ci charset - meaning your templates stored in the DB are not in utf-8. So that's why my browser is ignoring the utf-8 character declaration in the header. And the data with the weird pound sign is probably coming in as utf-8.
So maybe utf8_decode() will convert it to the same as the page. You will also need to remove the header charset=utf-8 declaration.