Структура меню же не меняется в процессе работы? Может тогда проще __flash сразу ко всем menu_item?
Код
menu_item __flash submenu1[] = {
{ .Parent=&main[0], Child=&submenu2[0], .Next=&submenu1[1], .Prev=&submenu1[0], ..., .Text="Submenu1" },
...
}
menu_item __flash main[] = {
{ .Parent=&main[0], Child=&submenu1[0], .Next=&main[0], .Prev=&main[0], ..., .Text="Main" }
}