I have been adding all my custom icons to the shell32.dll.mui file in C:\Windows\System32\en-US, you can make a copy of the shell32.dll and add all the custom icons you want then export the icon folder as a res file using Restorator making sure you only save the modified resources, then make a copy of the shell32.dll.mui file and open the file in Restorator, then drag and drop the res file you made on the open file in the left column in Restorator, you should now be able to save the modified file. After that you will need to take ownership of the shell32.dll.mui file then rename it to shell32.dll.mui.bak, then copy the modified shell32.dll.mui file back to that folder, you will then have to restart explorer or restart windows to take effect, you may also nee to clear the icon cache.
To clear the icon cache I just use a batch file with this in it.
taskkill /f /IM explorer.exe
CD /d %userprofile%\AppData\Local
DEL IconCache.db /a
IF EXIST %FILE99% (
attrib -H "%PATH99%\%FILE99%"
del "%PATH99%\%FILE99%" )
IF EXIST %FILE98% (
attrib -H "%PATH98%\%FILE98%"
del "%PATH98%\%FILE98%" )
IF EXIST IconCache.db (
DEL IconCache.db /a )
CD /d %userprofile%\AppData\Local\Microsoft\Windows
del /f /s /q Explorer\*.*
del /f /s /q Explorer\iconcache*.*
del /f /s /q Explorer\thumbcache*.*
DEL /f /s /q Explorer\thumbcache*.* /a
Good luck, this is the only way I know works without causing a black screen.
Unless Tihiy can give you a better solution.