I agree with your comments about OLE32 or OLEAUT32 being responsible.
We now know its the images that are the culprit. Concerning our latest problem with error 5003, we traced it down to a DBGRid component, but the problem wasn't with the grid itself, as putting a new one on the form didn't trigger the error. There was an icon attached to the DBGRid in its DragIcon property. Because of the way VB embeds images, it was impossible to say what size the original icon was, but pointing to a new icon or removing it altogether cured the problem.
To recap, although our original problem, and that of many others here was with an imagelist, it's not the component itself that's at fault but rather the type/size of image that's associated with it. This has been mentioned by other contributors and is definitely the case. I've passed the info on to our latest contact at Microsoft.