TrueNas uses zfs, where data pools can be configured and built up of smaller vdevs in multiple different ways. Each vdev will be limited to the smallest capacity drive in them. If you paired an 18 and a 12, it would drop the 18's size down to 12) So as long as you dont mix the drive sizes, then you would get the most of them.
For example a data pool using 4x 18TB drives could be mde to have a single vdev (3xdata+1parity) =54TB , or 2 mirrored vdevs such as ((data+mirror)+(data+mirror)) = 36TB. You could then add another vdev of the 2x 12TB drives in another mirrored pair to the overall pool. 54+12 = 70TB or 36+12=48TB. So you wouldn't necessarily lose your 12TB drives.
Although there is less overall storage space with the mirrored pair setups, I like the argument for them. If you have a failure, then it only needs to rebuild from the other half of that mirror, and it only needs to rebuild the amount of data that individual mirror holds ( 18TB for example ). If a drive failed in a 3xdata+1xparity vdev, then to rebuild it needs all the drives running and has to rebuild all the data - 54TB in this example. The argument being that mirrored pairs reduces the time to rebuild, and thus potentially lowers the risk during rebuild.
As for slow upload ... not necessarily always unraid's fault. Over a typical network, if the file sizes are less than 100mb, then i've found that its the network protocols become the limiting factor. there is a lot that gets added to the process of requesting to send, and confirming the completion of a file transfer. This overhead takes time away from the actual transfer of the file contents. So if you're transferring lots of smaller files, it bogs down and slows the overall transfer speed. For example, for me to transfer a 4Gb file to/from the NAS, it'll sustain close to 112MB/s. For me to transfer 4GB worth of RAW photo files at 30Mb each, it'll drop to around 50 to 60MB/s if not less. The smaller the files become, the more it bogs down.
I've not tried TrueNas yet ... but I used to run a linux server with ZFS on it. I now run Unraid for simplicity, and I dont mind its performance at all. There is a ton of add-ons for unraid, and things like Plex will be a well tested function. Once you get the data onto Unraid, I've found it to be perfectly acceptable when reading it back. ZFS is coming to Unraid in the future ... which I am looking forward to.