My initial question was obviously not clear, sorry for that.
The problem was not related to data binding to the DataGridView as a whole or to the implementation of the DataGridViewComboBoxColumn - as people have already correctly said, this is well documented on the Internet.
The problem I was trying to solve is updating properties that are detailed through relationships.
In my order example, when I change the value of the Product column, the Product Type column is not updated - even if in the code I set the property and fire the NotifyPropertyChanged event. (In debugging, I go to all the right places)
After much thought, I realized that this did not even work when I directly set the "Product Type" property of the data source, and did not set it in the "Product" installer.
Another thing that seems to me to get me back on the right track is that when I provide a simulated data access layer created in the main form, everything works fine.
Also, when I copy the IList created by nHibernate to the IBindingList, everything looks fine again.
So the problem, I think, is related to thread loss and NotifyPropertyChanged events that get lost when using certain data sources in a certain way (I would like to be more specific than that!)
I'm going to continue to explore better ways to solve this problem than copying IList to an IBindingList - maybe I need to know about thread allocation.
edit
Now I have developed a solution that solves the problem and I think I understand what bothers me - it seems that something other than binding the data of the basic property is not very suitable for lists that are not derived from the BindingList - as soon as I tried When binding data to properties that triggered NotifyPropertyChanged events, everything went awry and my events got lost.
I now have a data access solution using a Rob Conery IRepository template option that returns my collections for binding in the form of a custom class I created, SortableBindingLazyList, a derivative of BindingList, implements Sort Core methods, and also stores its internal list as a request that delays materialization of the list.