Ну, методом проб и ошибок я нашел решение.
В коде VB6 верните дескриптор значка вместо значка (тип возврата для Icon.Handle - OLE_HANDLE, который может быть возвращен как long.
В коде VB6:
Public Function GetIconHandle() as long
GetIconHandle = myForm.Icon.Handle
End Function
В коде .NET:
IntPtr iconHandle = (IntPtr)COMDll.GetIconHandle(); // returns an int for the handle to the icon.
Icon myIcon = Icon.FromHandle(icnoHandle);