a select list has to pieces, the label and the value.
The Label is what the user sees in the list. The value is what is sent when the form is submitted. In some cases, you may want to show test in the lit, but end an ID number. If you wish to both show and send the txt, then add the text for both the label and the value.
Web using options, in the cart object, you should set the option columns as Unique. My bet is that the option column is not unique causing the other issues you are experiencing.