The first version of FreeNAS that I've used was 11.2 u5 ... NFS had been working from Windows -- and stopped ...
Even REINSTALLING Windows didn't work; let alone, clearing my browser...
...and of course - I've tried from multiple computers.
Updated to 11.2 u6 -- hoped for some form of improvement in at least one of the protocols, however, there were no changes. :-(
I have never tried the Windows NFS client, so I don't know what peculiarities it may introduce. I have NFS shares I use both in VMWare and in Linux (KVM); they are working fine in U5. There are 3 places in the GUI you need to go for the settings: "Edit Options" / "Edit Permissions" on the directory you are trying to share, and the NFS panel under Shares.
If you can actually see the contents of the share, the most likely cause of your problem is a permissions issue. Windows uses SIDs, while Unix uses Unix IDs. Something has to map between the two for things to work. Somehow Windows has to come up with a Unix user ID and group ID to initiate the mount. Macs I think are a BSD variant so they don't have to translate, but also need to chose a Unix user ID and group ID for the mount. Once they connect to FreeNAS, what they can and can't do depends on the ownership and permissions on the directory. The user/group id Windows/MAC mount the share as is the FreeNAS **local** (cat /etc/passwd; cat /etc/group) user id and group id it uses for all operations. This can be very problematic if the user id used by say Windows doesn't exist on FreeNAS. It gets even worse if each OS or user on the OS uses a different ID.
The easiest way to deal with all of this is to use the advanced features mapalluser and mapallgroup. What you do is you set the permissions on the directory you are trying to share as a local FreeNAS user/group of your choice. For example on my system I created vdsm:kvm. You give these local accounts full control of the files in this directory and propagate permissions. On the share configuration you set the mapalluser to the local user you chose, and mapallgroup to the local group you chose. What this does is make FreeNAS take whatever ID the incoming mount connection is made as and force it (map it) to the user id and group you told it to. This means that you irrespective of what user on Windows or the MAC connects, irrespective of how they map the users or chose IDs, on FreeNAS they are always connected as the local user you set. I will attach screenshots of my KVM NFS share.
There are more complicated solutions that use LDAP to dynamically map users and groups between the different systems you are trying to connect, but unless you have the need (ie-corporate environment) then I would just stick to mapalluser and mapallgroup.