Don't worry about that, you'll learn quickly with this project. It really gives you a good understanding of how Linux works, at the kernel and driver level.
I almost did the same build, but budget for my upcoming project stopped me. I'd say go for it if you want.
Also, that asrock motherboard looks perfect, if it fits in the 900D. I'm not familiar with the form factor listed, so definitely sanity check that.
Not possible with Passthrough, that's a VirtualBox thing, and it makes use of the virtualbox drivers.
Okay, let's hammer this out once and for all:
Nvidia cards, by their electronic capabilities (the physical properties of the device) support passthrough. Their drivers, within the VM, are intentionally hamstrung to prevent this from working. If Nvidia drivers detect that it's in a VM, they refuse to start, because that's the way Nvidia wants it. This is to try to force you to buy a Quadro. The workaround for this is to disable the KVM and Hyper-V extensions in the VM, which come at a (CPU) performance cost, but the Nvidia drivers will work.
AMD cards, by their electronic capabilities, mostly support passthrough. They have a problem where they don't fully listen to PCIe Bus resets. In laymans terms, this is the same as pressing the reset button on your PC, but only for the GPU. This causes issues with certain cards. (R9 3xx series) Linux developers have claimed to have solved this, but my ASUS R9 380 still encounters this problem, even with Linux 4.8.7. You may or may not have problems with AMD cards. See the only problem here is when you reboot the VM, you have to reboot the host OS as well. So, if you don't reboot the VM, you don't have a problem.
The storage I don't think I'll have much of a problem with. I will pick up an extra SSD for this and might just do a similiar set up and have the Windows VM connect to the Linux guest via share folders / SMB / Samba thingie.
On the topic of Storage, you may want to do something similar to what I've done: I have a ZFS array that hosts my /var, /home, /opt, /srv and has a virtual block device that acts as the C drive for my VM. This allows it to take advantage of the raw storage of my 5x4TB RAID1 array and the speed of my Samsung 850 pro, because that's used as a read/write cache.
It also allows you to take snapshots of the vdev with ZFS as opposed to using QCOW2 snapshots or DD (if you're using direct access to /dev/sdX). On top of that, it's thin-provisioned. (you only use the space that has actual data on it, more or less)