Spoofing or hiding monitor serial number
Ok, we'll need to clear up a few things:


  A MAC address of a computer can be spoofed by an FPGA which can be programmed as a network controller. 


Um, yes. But any modern (think: the last 20 years "modern") network card also allows you to freely configure the MAC address it uses, so I think you might be overshooting a bit here with your FPGA.


  I can set a custom MAC address to it. 


Indeed, as with any other NIC.


  I turn off the motherboard's network interface controller in BIOS. 


Ok, so now you've disabled some software setting that says the NIC is enabled. Whatever than entails.


  I use the FPGA that is programmed as a network controller. 


Awesome! Just as if you had a cheap network card! Or used your onboard NIC with a custom MAC address. By the way, that on-board network card might still be queryable if you know how – it's not really defined what "disabling it in the BIOS" (you actually mean some setup menu for the onboard firmware, which is a few Megabytes more than just the BIOS).


  A software can in no way fingerprint my computer.


That's total nonsense. Your network card is by far not the only thing in your PC that has identification. CPUs have serial numbers. Board controllers, GPUs, most PCIe devices, even RAM modules do. Your UEFI instance probably has one.


  SSD or HDD serial can be spoofed by Raid controllers which do not reveal the serial numbers of the connected SSDs or HDDs. A software can in no way fingerprint my storage devices. 


You don't seem to realize what "fingerprinting" means: it means analyzing the way in which your PC hardware is special. Your specific SSDs might, just by pure coincidence, exhibit a specific speed for specific read sizes.

And as explained above, it's not your storage alone, it's the composition of all your hardware, plus software, plus their specific variations that no other device out there has.

I'd doubt it's possible to make a PC-style device really unfingerprintable.
Assuming, and that's the big assumption here, you let some software access all the hardware. Which you usually don't – the job of your operating system is to stand between unprivileged software and your hardware. For example, an operating system can simply not let software know what the hardware ethernet MAC is – why should a userland program need to know that? Business of the L1/L2 network stack alone.


  How can I hide monitor serial numbers in a similar fashion?


This is the least of your worries, but you'd simply buy an oldschool I²C EEPROM, and write exactly the one screen mode you want to use to it. I don't even think any of my screens would deliver a serial number through EDID, though.


You seem to be simultaneously slightly paranoid about being identifiable based on your hardware, and on the other hand pretty clueless about how you'd actually be trackable.

You have to realize that, for example, your online behaviour makes it far easier to identify than anything trying to read your (totally randomizable) NIC MAC.