I use offlinesysprep to change the hal. the latest version works great. I haven't had any yet that it wouldn't work on.
as for your process, I have a couple of questions.
step 5: why do you copy the xp cd to sysprep/i386?
you sysprep.bat:
devpath is for adding drivers to the registry. You should be executing devpath on the drivepacks folder not on c:
you don't need the enabling image for amd/intel. you are building in vmware which doesn't even have intelppm.for -bmsd
The drivers for bmsd never change so you only need to run it once. As for scanning the drivepacks for mass storage, are you only choosing certain ones? like ide only. If you try to add them all you will definitely run in to memory issues.
I copied the XP i386 folder to c:\sysprep\i386 because in a previous universal image everything worked great except during the sysprep stage on reboot it would throw up a dialog box wanting to know the location of 3 different files from the i386 folder and was looking for them under c:\sysprep\i386.
Just figured I'd save myself the hassle and put it all where it wanted it.
As far as Mass Storage drivers go, if I knew how to just give it the Intel drivers and the drivers for the new Acer Aspire One that my image doesn't work on I would be happy. But I've been really busy with other things and just don't have the time to sit down and figure it out.