The MSDN documentation for CollectionEditor Class states:
This editor can edit collections that have an Item property. The editor can determine the type of the collection from the Item property, if it exists. If the collection does not have this property, or if you want to provide collections of more than one type, you can override certain protected members of this class to customize the editor to support other types of collections.
Additionally the Collection Editor Example document states:
If you use a strongly typed IList implementation for your collection property, and all the objects in the collection are of the same type, you do not need a custom collection editor. In that case, you can rely on the built-in CollectionEditor as the property editor because CollectionEditor infers the object type from the type of the Items property of the IList implementation. You should use a typed collection whenever possible. However, if you use a collection such as ArrayList as the type of a controls' collection property, you need a custom collection editor to specify the collection items' object type.
So I don't think the CollectionEditor will work (out of the box) with your OrderedList.
Have you tried projecting your OrderedList collection into an IList collection?
IList<CustomItem2> myList = mySortedList.Select(m => m.Value>).ToList();
// Or
IList<KeyValuePair<CustomItem1, CustomItem2>> myList = mySortedList.Select(m => m).ToList();