А стандартне переключення працює?
Можливо ви створили дублі по #id, і невказали в свому меню input типу hidden:
<input type="hidden" name="redirect" value="<?php echo $redirect; ?>" />
в контроллері вашого меню є щось подібне?
if (!isset($this->request->get['route'])) {
$data['redirect'] = $this->url->link('common/home');
} else {
$url_data = $this->request->get;
$route = $url_data['route'];
unset($url_data['route']);
$url = '';
if ($url_data) {
$url = '&' . urldecode(http_build_query($url_data, '', '&'));
}
$data['redirect'] = $this->url->link($route, $url, isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1')));
}
Треба було в свому шаблоні банально вивести прапорці, чи як у вас там - кнопки для переключення і кожна кнопка тригерить стандартну кнопку переключення мов.