This problem occurs when a later version of MSXML6 is installed than the one that is included in SQL 2005. The MSXML6 SP2 cannot be overwritten with the older version of MSXML6 that is in SQL 2005, and any attempts to uninstall MSXML6 will fail. This fix from Microsoft will change the properties of MSXML6 SP 2 so that it can be overwritten.
Download and run the autofix file from this link:
Auto Fix from Microsoft
Then install SQL normally.