How can I get the correct label of a dropdown that has matching values?
Craft saves only the option value of a field, not the option description. After saving and editing again, it loops trough all the option values and compare it with the saved value. If it matchs it selects the first option. 

You always need to have unique values. For example you can use 5fix and 5var as option values. If you need different outputs in your frontend template, you can use a switch case like this (code is untested, but should work):

{% switch entry.field %}
  {% case "5fix" %}
    Fixed 5%
  {% case "5var" %}
    Variable 5% 
{% endswitch %}