This is what I ended up doing (based on this question). it's a little simpler, hope it helps. I just named my site map provider after the area, or "default".
@{
// gets a different sitemap for each area (or the default one)
var _siteMap = ViewContext.RouteData.DataTokens["area"]
as string ?? "Default";
var sm = Html.MvcSiteMap(_siteMap);
@sm.Menu(sm.Provider.RootNode, true, true, 2);
}