Ah, I get it.
The font-awesome icon is separate from the text because it’s called using the :before selector in your CSS. This is also why the icon itself is not linked – so if you hid the text, nothing would be clickable.
While the WP menu function wasn’t designed to be used for graphics in place of text, there is a potential workaround, but I don’t think it will meet your goal of keeping it simple for your client to modify, not without potentially messing it up.
The workaround would involve NOT using the CSS to add the font-awesome icons, but put them directly into the link using the direct method like this:
<i class="fa fa-twitter" aria-hidden="true"></i>
Then wrap the actual text link in a span tag, and hide that span using CSS. Workable, but anyone modifying the links could mess it up and it would break.
Since the goal is to keep it simple for the client, would you consider just using a social plugin? Perhaps Ultimate Social Media Plus (possibly overkill but has a lot of great options and features) or a more simple one – even the only-decent ones let the user modify it’s settings to add/change/delete links to social accounts as needed and provide nice looking icons.
Alternatively, you could give them a simple flat (non-heirarchical) custom post type with only two metaboxes besides the title (the title has to stay) – the first metabox could be for the font-awsome icon (using either the name or unicode) and the second metabox could be for the link (remove all other normal metaboxes for this CPT so as to not confuse them) – the do a simple query to loop through them and structure a simple list with that metadata that you drop into the header, either in the template or in a widget, with or without using a shortcode.
In that method they could add, edit, or delete any of the CPTs as they need to and your menu would still work….they would just have to be careful to use the proper unicode or icon name for the icon, and make sure they paste the URL in for the link.