If you want the instances to sync, you just need to sync the directory. (I currently use nextcloud sync for this, but in the past I used synching and before that btsync)
If they dont try to modify the files at the same time (with sync delay) there won’t be any issues. If they do grow out of sync, you can fix pretty easily with db repair.
Right, only one side of the connection needs an open port (and most clients will let that be either seed or leech side)… this is why having an open port on your end is useful if you’re downloading, since you can download from seeders that don’t have an open port.