Not sure if you've got anywhere with this, came here googling and ended up figuring out a solution. Unraid sets all the parameters it uses for docker directly on the flags in the service file in /etc/rc.d/rc.docker (symlink to /usr/local/etc/rc.d/rc.docker), which is where it chooses the storage driver:
The issue here is that even if you were to persist the daemon.json by putting it in /boot/config and creating a script to copy it back on boot, you'd still not be able to change the storage driver as docker does not allow you to override the flags (and won't even start at all):
From what I can tell the service file is actually kept in /boot/bzfirmware, which unpacks to the /usr directory on boot. To modify the original file, you'd need to change the file within the bzfirmware archive, then update the checksum (assuming that's possible). Not great, and your changes would get overridden when updating unraid!
A slightly more practical solution would be to modify the unpacked file during boot, using a script something like the below which you'd execute from /boot/config/go:
# Comment out existing BACKINGFS line, and add BACKINGFS=xfs
sed -i "s/^BACKINGFS=.*$/#&\nBACKINGFS=xfs/" /etc/rc.d/rc.docker
Which results in this, and a happy docker:
Overall not that big of a hassle, but shame unraid doesn't let you configure this yourself.