Adding menu items dynamically using wp_nav_menu_objects

You should also specify db_id field for the parent menu item:

function epc_add_menu_item( $post_id, $menu_order, $item, $child ) {
    ...
    $new_item->db_id = $menu_order;
    ...
}

On a side note, menu item that has children should also have menu-item-has-children class.