Okay so here it is.
After few hours of banging my head I was able to get this. All you need to do is create a PickerEntity instance and add it to the entities collection of pickerItem to set the values.
peClient = new PickerEntity();
peClient.DisplayText = item["Client"].ToString();
peClient.Key = item["dbo_x002e_Customer_ID"].ToString();
bdcClientSelector.Entities.Add(bdcClientSelector.ValidateEntity(peClient));
To read the value you again need to type cast ItemPicker.Entities[0] to picker entity instance and use the Key , DisplayText or ExtendedData property to get the relevant values.
PickerEntity bdcEntity = (PickerEntity)YourEntityPickerId.Entities[0];
Just a few finding:
1. It would good to set the .IsResolved property while setting so that it can be fetched later using the .ResolvedEntities property of the ItemPicker
2. It is always a good idead to use .ResolvedEntities to fetch the data from ItemPicker as .Entities 's behaviour is unpredictable.
For more details, please read through:
http://karinebosch.wordpress.com/sharepoint-controls/peopleeditor-control/
http://www.myfatblog.co.uk/?p=118
http://www.fftf.org/news/Jun08feed/Using_a_BDC_ItemEntity_Picker_Control_in_Custom_SharePoint_Application_Pages.rss.html
Code blocks quoted above are taken from these posts . Hope this helps.
Cheers,
--OM