ServiceNow uses the value in the back end as the actual data.  The text is just for display.  If you have a choice with the same value it will not know what to display on the list layout.  The reason it is getting the correct one on your form is because you are going to the specific record and it is pull the correct one but that may not always be true.