If you have a small number of key / value pairs and the values are small, the registry is very large - and you do not need to deploy xcopy and then use the registry (I know this is not accurate, but it is usually obvious when working with the registry becomes a pain).
If you want xcopy deployment, the data should be in the same folder as the program, but the program may be located somewhere in the AppData folder, it should not be under the "program files".
Use isolated storage only when you need it or need to use it - for example, ClickOnce.
Otherwise, use AppData \ Roaming, use Local or LocalLow only if you have a good reason.
EDIT: here is the difference between Roaming, Local and LocalLow:
Windows has a little-known feature called “roaming profiles,” the general idea is that in a corporate environment with this feature, every user can use any computer.
When a user logs in to his personal settings, boots from the server, and when he logs out, his settings are downloaded back to the server (the actual process is more complicated, obviously).
Files in the user's Roaming folder in Vista or Application data in XP are moved together with the user - therefore, any settings and data should be stored there.
There are no files under “Local” and “LocalLow” in Vista and “Local Settings” in XP, so this is a good place for temp files, things associated with a specific computer or data that can be recounted.
In Vista, as part of the new security features that we all know and love, you can have programs that work in "low integrity" mode (for example, IE in protected mode), these programs work with reduced privileges and cannot access files in user profile - excluding files in the "LocalLow" folder.
So, in conclusion, the files stored in "LocalLow" are inherently unsafe, and the files in the "Local" / "Local settings" are probably not available in some large companies, so if you have no good reason and know exactly that you perform Roaming / Application Data.