Load a full menu with active trail
I just want to add my experience to the lot. I had similar issues using Drupal menu. The solution I used is:

Set all menu items with children to &quot;Expanded&quot;. This as to be done manually: Structure &gt; Menus &gt; List links, edit links which has children, check the Show as expanded checkbox.
Use menu_tree_page_data function (example: $menu_tree = menu_tree_page_data('main-menu')) to get the menu, with all its children AND with active trail.
Create a renderable array using menu_tree_output function (example: $renderable_array = menu_tree_output($menu_tree)) to prepare the menu for rendering.
Use the renderable array as content for my custom block, but you could call drupal_render($renderable_array) to get the rendered HTML representing the menu.