Well it was not actually deleting the registry when i did more research on this.
Its very intresting what i have found.
The was sequenced on 64 bit. In the OSD i had used the below for running the vbs (which imports the .reg file):
<HREF>%windir%\system32\cscript.exe -nologo "%programfiles(x86)%\testing\test.vbs"</HREF>
The .reg file had 64bit as well as 32bit registry, hence when the vbs was running from OSD it would write correctly the 64bit registry as well as the 32bit registry also, but after closing the shortcut in the 32bit registry (under Wow6432Node) would be
disappeared and only the values from .reg file would be seen. Hence i feel that it does not actually remove the registry but it only shows in the view (as the app functions correctly).
Also since the app was 32bit and hence only registry under Wow6432Node was required, i changed the .reg file and remove all references of Wow6432Node and used the 32bit cscript.exe to run the vbs (so that it writes the values to the Wow6432Node)
<HREF>%windir%\sysWow64\cscript.exe -nologo "%programfiles(x86)%\testing\test.vbs"</HREF>
This has helped me resolve the issue.