Frank,
Unfortunately, the CreateDevInfo and SetDevInfo commands do not function as you were expecting. These change the device information for that program only.
Resources (such as Memory Addresses) have to be mapped across the MXI-2 interface, and Resman performs the mapping based on the configuration information. The reason you get a bus error when trying to then access the device is because the memory mapping across the MXI-2 has not been done for the address ranges configured by SetDevInfo because resman has not run.
After setting the information programmatically, you would have to close that program to run resman. Since the settings are localized to the program you just closed, resman would not map the device information.
If you used an embedded controller, you could read and write directly to the address on the device. You would not have to configure the devices at all (manually or programmatically) because you have direct access to the VME backplane.
There is not a way to programmatically configure VME devices. However, there are options in MAX to enable and disable the various VME device profiles. So you could create all of the different VME devices you will be using, and then enable/disable according to the current configuration. Also, NI-VXI 3.2 includes tools so that you can import and export VME device information in to and out of MAX.