This isn't a complete answer, but maybe it will get you started.
I think I would hook into something like this...
add_action('switch_theme', 'mytheme_setup_options');
function mytheme_setup_options () {
// todo: delete old sample data
// todo: import new sample data
// todo: figure it if this fires upon 1st activation, or just upon switches.
}
You could maybe use something like 'WordPress Importer' to facilitate the import, maybe even showing a pop-up explaining how to download and import the sample file. I bought a premium theme that followed this approach, and it worked pretty well.
You'll have a challenge separating out your sample data, from any customization the user has already done, especially when they are switching back and forth between themes. I suspect you don't want to overwrite their progress, nor pollute their site. And you'll need to avoid duplicating entries if they keep switching back and forth.
Depending upon your situation, it might be smarter to have some sample sites, and show a admin message linking to the corresponding sample site.
Just some thoughts - good luck.