Front-End Entry (Guest) saving correct values on error
Digging into a past solution for checkboxes thanks to @bradbell, here's the answer!

 &lt;select name="fields[honorific]"&gt;
     {% for honortitle in entry.honorific.options %}
         {% set chosen = false %}

         {% if honortitle.selected %}
             {% set chosen = true %}
         {% endif %}

         &lt;option value="{{ honortitle.value }}"{% if chosen %} selected{% endif %}&gt;{{ honortitle.label }}&lt;/option&gt;
    {% endfor %}
 &lt;/select&gt;