Попробуйте при переходе на главную записывать в localStorage нужный вам якорь, а при загрузке страницы проверять его наличие. Соответственно, если параметр не равен null, делаете скролл и обнуляете.
Update:
Можно использовать History API для удаления якоря, единственное ограничение - поддержка HTML5, соответственно IE10+.
jQuery(function ($) {
if (window.location.hash) {
var target = window.location.hash;
// убираем хеш из строки(отключаем дефолтный "прыжок")
history.replaceState("", document.title, window.location.pathname
+ window.location.search);
// анимируем скролл
var target_offset = $(target).offset() ? $(target).offset().top : 0;
var customoffset = 85;
$('html, body').animate({
scrollTop: target_offset - customoffset
},500);
}
$("#.menu a[href^='#']").on('click', function(e) {
e.preventDefault();
var target = this.hash;
var target_offset = $(target).offset() ? $(target).offset().top : 0;
var customoffset = 85;
$('html, body').animate({
scrollTop: target_offset - customoffset
}, 500, function(){
});
});
});