You forgot to mention the most critical part. You are using Visual Styles.
Start your app in Sub Main() and add Application.DoEvents after Application.EnableVisualStyles. It may be better to use a Manifest file/resource instead.
An alternative solution (instead of adding Application.DoEvents) is to leave your ImageList empty at design time. Add the Icons to your project as embedded resource and add them to the Imagelist in the Form_Load() method.
I tried this in my solution but it didn't work... could the colour depth effect this problem?? There seems to be quite a few messages in the forum that relates to this issue. Do you know if MS are actually going to do anything about it?