UPnP for me has an issue that it doesn't understand external subtitles.
FTP gave me video skip problems.
NFS has been my 'companion' for more than 8 years now.
The upside: Easier to confgure (IMO), and once it runs, it runs.
The downside: Linux prefers EXT4 formatted disks, and NFS isn't supported by default by Windows. You can add an NFS client as from Win10Pro afaik, and I tried it, but couldn't get it to work (go figure). I wouldn't recommend a Windows machine for what is basically a Linux file protocol.
Frankly, I have no idea where your SMB problems start. Microsoft keeps changing its Windows GUI and/or settings with every major update, so that is adding to the confusion. I do have a Windows machine, but I hardly use it. It still has to receive the latest 1803 update.
I've been using an Ubuntu Linux machine all the time (since XMBC Eden), and it's been faithful to me.
For newcomers there is a small learning curve to the Linux world, but for file serving only, even I got it working.
Using a VM machine like Virtualbox is a good tool to experiment with Ubuntu (Server) and its quirks.
There are plenty of Ubuntu tutorials on how to install and setup NFS server.
The question is: are you willing to put in the extra effort?