I suspect this is because you are parsing "Reports/Report1" as the reportPath parameter out of your route.
context.MapRoute(
"Reporting_Report",
"Reporting/Report/{*reportPath}",
new { controller = "Home", action = "Report", reportPath = UrlParameter.Optional },
new[] { "Web.Areas.Reporting.Controllers" }
);
And in your node, you have the reportPath declared as "/Reports/Report1" (note the extra forward slash).
<mvcSiteMapNode title="Report1" description="abc" iconClass="glyphicon glyphicon-stats" key="Report1" route="Reporting_Report" action="Report" reportPath="/Reports/Report1"></mvcSiteMapNode>
For the parameter to match, the value must match exactly (except that it is a case-insensitive match).