Your syntax is broken, the quote marks do not match. Try to separate data from the shortcode template, and use sprintf()
:
$shortcode = sprintf(
'[pw_map address="%1$s %2$s %3$s %4$s" width="100%"width="%5$s" height="200px"]',
$address,
$city,
$province,
$postalcode,
'100%'
);
echo do_shortcode( $shortcode );
That’s much easier to read, and it is harder to create syntax errors. :)