I apologize for my previous post being redundant with your opening post, denbigh97.
I am able to duplicate your problem on my machine. I can change the icon via Folder Options, File Types, and though the registry entry HKEY_CLASSES_ROOT\htmlfile\DefaultIcon changes, the displayed icon doesn't. Looking a bit further down the htmlfile entry, I see an entry ShellEx\IconHandler (HKEY_CLASSES_ROOT\htmlfile\ShellEx\IconHandler}. The IconHandler contains a CLSID value. Searching on this CLSID from the top of the registry gets to: HKEY_CLASSES_ROOT\CLSID\{42042206-2D85-11D3-8CFF-005004838597} and lo and behold, within this is entry: \Old Icon\htmlfile\DefaultIcon. When I change the DefaultIcon value, the icon for HTML files changes. Your CLSID, if you have one, more than likely will be different…
I continued searching on the CLSID, eventually turning up: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved
which describes it as Microsoft Office HTML Icon Handler
My take on all this is that if there is a ShellEx\IconHandler entry, it is this entry (CLSID) that is responsible for handling the icon.