I ended up having exactly the same problem here and phil_m_parsons hit the nail on the head.
I was provided the theme by someone else who had worked on the project before me and it was already “enabled” as a theme in wordpress. I went ahead and created page after page of content and noticed it was populating my menu like it was supposed to. Nice.
The not nice thing was that the styling was missing. I realized I needed to mess around with the parameters you pass into wp_nav_menu() and got absolutely nowhere as it was ignoring most of my parameters including the “container_id” parameter.
Turns out you have to go to Appearance -> Menus and actually create your “menu” entity. If you don’t do this (and set “menu” parameter to the name you choose for your menu), then WordPress just defaults to the wp_list_pages() function because it can’t find your menu. This is why it ignores most of the parameters.