What you're describing is very similar to what the Musea scripts to move OpenACS 3 content to OpenACS 4 do. You may want to take a look at them. They may be in new file storage? If not e-mail Talli or someone else at musea directly to get a copy.
It's actually quite easy ... it is only hard in the sense that deleting content without "on delete cascade" is hard - you have to figure out the dependencies and migrate everything in the right order.