It's a known bug. The .NET GDI doesn't even have an icon encoder so it saves it as a png file. I was trying to find a solution for that for a long time and the only thing I've found is that you can use a free image conversion library called FreeImage (
http://freeimage.sourceforge.net/ ) which can save images to many different icons. It's free and released under the GNU license if I'm not mistaken, but there's one limit - it can save icons only in this size
range: 16x16 - 128x128 . So keep in mind that smaller or bigger images won't be saved.
If you find a better solution please share it with us. I'd really like to know how to solve it without using an external source.