Not weird at all. All my data is shared from a single VM but I access it from several others than run jellyfin and the *arrs, and a few other things. When you don’t want everything running on the same virtual machine, you need to share the data over the network, even if it’s all on the same physical box.
There’s a bit to explain here. So the root user is basically the equivalent of Administrator. One big difference (there are many) is that when you run something as root using sudo, you are actually running as the root user. When you ran the first command to create the folder, you created it in your home directory using the ~ shorthand variable which points to your /home/ user folder. The second command, also references your home folder. However since your running as root, it’s looking for the file in the root user’s home directory or /root, not your home folder.
The config file needs to be in the home directory of the user running the command unless you can put the full path to the config file in the command, then you can put it wherever you want.