Is the “editable” property of the field checked or unchecked? It should be unchecked if you’re specifying return values (I made the same mistake recently).
Take a look at the application.setValueListItems() function, you have to pass two distinct arrays: one for display values and the other for return values.
//Fill a custom type valuelist with values from array(s) or dataset
//set display values (return values will be same as display values)
application.setValueListItems('my_en_types',new Array('Item 1', 'Item 2', 'Item 3'));
//set display values and return values (which are stored in dataprovider)
//application.setValueListItems('my_en_types',new Array('Item 1', 'Item 2', 'Item 3'),new Array(10000,10010,10456));
//do query and fill valuelist (see databaseManager for full details of queries/dataset)
//var query = 'select c1,c2 from test_table';
//var dataset = databaseManager.getDataSetByQuery(controller.getServerName(), query, null, 25);
//application.setValueListItems('my_en_types',dataset);