Ah now I get it.
Ok first of all, you should not use anchors with name attribute. name atttribute is no longer supported in html5.
Instead use id.
Next thing is, that the html element that contains for example the
<a name="calendar"></a> is causing the browser to pull the containing element to the very top of screen when accessing the yourdomain.com/#calendar from a sub site.
To get it right, modify your anchors like so:
<a id="calendar" class="anchorhome"></a>
Exchange calendar with whatever the name was before.
Then add this to your custom CSS:
This should make your menu links scroll to the right position when clicked on a sub page.
However when you click on a menu link now on the front page, the scrolling destination will be a bit above the top border of the containing element.
Anyaways, hope I could help