The reason this occurs is due to the order that Windows Installer applies transforms and patch transforms. You cannot change the order in which a transform and a patch transform are applied to the msi. The transform that was applied with the base product will always be applied last which is why it will overwrite any values that the patch would have updated. This is expected behavior.
· Base msi installed
Registry key value is set to authored value as set in the registry table of the msi package. For example the registry might have an authored value set to "base"
· Base msi plus the transform
Registry key value is updated by the applied transform. For example it might set the value to "transform" from the origina value "base"
· Base msi plus transform followed up with a patch install
Registry key does not get updated with the value from the patch but remains at the value that the transform sets.
For example using the values shown above it would show the value as “transform“ not the value that is authored into the patch
Consider modifying registry values using patches not transforms. In this way the changes can be affected by using patch sequencing.