That did it! Adding the --run parameter seems to have made the difference.
I am ecstatic beyond words, thank you guys SO much!
root@mainframe:~# mdadm --stop /dev/md0
mdadm: stopped /dev/md0
root@mainframe:~# mdadm --assemble --force --run --verbose /dev/md0 /dev/sd[abcd]
mdadm: looking for devices for /dev/md0
mdadm: /dev/sda is identified as a member of /dev/md0, slot 4.
mdadm: /dev/sdb is identified as a member of /dev/md0, slot 0.
mdadm: /dev/sdc is identified as a member of /dev/md0, slot 2.
mdadm: /dev/sdd is identified as a member of /dev/md0, slot 3.
mdadm: no uptodate device for slot 1 of /dev/md0
mdadm: added /dev/sdc to /dev/md0 as 2
mdadm: added /dev/sdd to /dev/md0 as 3
mdadm: added /dev/sda to /dev/md0 as 4
mdadm: added /dev/sdb to /dev/md0 as 0
mdadm: /dev/md0 has been started with 4 drives (out of 5).
root@mainframe:~# mount /dev/md0
root@mainframe:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid5 sdb sda sdd sdc
7813531648 blocks super 1.2 level 5, 512k chunk, algorithm 2 [5/4] [U_UUU]
unused devices: <none>
I'm going to microcenter here soon to buy some more storage to back it all up. From now on I will keep my replacable HTPC media seperate from all my other valuables and at minimum backup all the stuff that's irreplacable.