InjectMsd copies whatever .sys file exists in the msd folder to system32\drivers, overwriting whatever may have been there before. Look at the source - there is no attempt to check dates or versions - just copy, with overwrite. If there is a problem during the copying, you should see an error message in injectmsd.log.
I suggest following test: halt the provisioning task after injectmsd (e.g. by inserting a dummy notepad command). Then check which copy of iastor.sys lives in system32\drivers. If somehow after the job is done the machine ends up with a different copy of the file, then what must have happened is the OS found a backup copy of the newer iastor.sys and decided to restore it. When I look on one of my machines running winXP, I can see 2 backup copies of iastor.sys. Get rid of the backup copies (no need to rebuild the image, do it under WinPE) and I bet the mystery will be solved.
I ended up just running the install of the driver with the -overwrite switch and it will install correctly.