IBindingList implements IEnumerable; therefore, as long as you are returning an IBindingList and its AllowNew property returns true you should have no issues inserting items in details.
Take a look at the Creating a Custom Detail Description example in the documentation. In the GetDetailsForParentItem, I return a new BindingList as such (using the GetNewBindingList method):
object details = foundProperty.GetValue( parentItem, null );
Type detailsType = details.GetType();
MethodInfo getNewBindingList = detailsType.GetMethod( "GetNewBindingList" );
return ( IEnumerable )getNewBindingList.Invoke( details, null );
Even if it is cast as an IEnumerable, I am still able to insert new data items.
Technical Writer - Xceed Software
Of all the things I've lost, I miss my mind the most. - Mark Twain