The below was the alternate solution:
Alternate Solutions:
1. Put an extra character in the text so the value will be sorted alphabetically.
a. (e.g., AStart of Line, BMiddle of Line, CEnd of Line)
2. Use the IDs that are being returned then use a search to get the correct names to associate with those IDs. The pseudocode is below:
a. Use search.lookupFields to get the selected options from the multi-select field.
b. Iterate over the returned array. For each object in the Array, get the value and push it into a new array (call it idArray).
c. Run a search for all instances of the custom record that is used as the list for the multi-select field.
d. For each result, if its internal id is in the idArray, create an object with the name and internal id of the record.
We cannot do option 1 as this would impact our customers. Option 2 is the preferred, however we have many instances of this function across our code base and we would need to patch code everywhere on dev and customer accounts.
It should be at least throwing an error rather than silently mapping in the incorrect values and potentially messing up data.