If I recall correctly, I think there might be a post about DataStore access across multiple places within the same “Universe”. This thread was really helpful for me in understanding how DataStores work across places.
DataStores - Beginners to Advanced - Resources / Community Tutorials - Developer Forum | Roblox
Save Player Data with Roblox Datastores (youtube.com)
I put some resources that hopefully you might find some use for, my advice would be to go through the videos first, and work through small things such as saving numbers, string, etc. This will get you adjusted on the main structure and as you progress these resources, you will gain a familiarity with how to structure your code and data. DataStores are definitely not easy, but with slow and steady progression through the material, with plenty of trial and error, you will definitely understand it.
As for your question about transfer data between games, to my knowledge you can definitely transfer data between places within one game (so if you wanted to make a sort of story mode, it is definitely possible by making different places, since the datastores will still exist), although my knowledge right now is limited across different games (perhaps there might be some API or method to do it). I prefer ProfileService since its helped me organize general data, like currency, levels, inventory, with little to no issues (while handling edge cases).
On a last note, try to learn the basics of DataStores from tutorials or guides, then proceed with playing around with how DataStores work, how to structure the functions, data, etc. I hope this helps!