Ultimately the menu controls and the site map are hierarchal trees and any given node cannot be in more than one place and cannot have more than one parent node. You can create additional links in the menu to a given page (either using the full url or an alternate friendly url that maps to the same page id) but it can only have on real parent and the menu only really knows about that one so it can only highlight correctly with that one.
From code you can access the pageSettings object of the current page from CacheHelper.GetCurrentPage(), you can also access the pageSettings object by passing in the page id and site id to its constructor.
PageSettings myPage = new PageSettings(siteId, pageId);
But the menu is binding to the site map which is a cached tree like object (again a node can only have one parent), site map nodes correspond to page Setting objects but they are not the same thing, sitemap and sitemap nodes are mainly for menu binding, pageSettings is for manipulating and persisting properties of a page.
Best,
Joe