While I know some facts about UEFI and Legacy and basic differences between them, like UEFI allowing for faster booting (I've checked this question already, but it doesn't answer mine), I have a bit of a different question(s):
I'm not sure if BIOS settings can have any influence on how the system works and if legacy settings can be the cause of hardware misbehaving, but I usually install my Linux systems in legacy mode, with boot priority legacy first. Is it ok this way or should I change either the boot priority to UEFI first, or everything adjusted to UEFI (this Lenovo G50-45 laptop came with Windows 8).
Also, on my laptop quite a few things don't work properly, whereas on Windows everything worked and I'm not sure where the fault lies. I only recall, that Windows wouldn't install with legacy settings, I had to change boot priority to UEFI first to be able to install it (Win 7 Ultimate x64).
Currently on *ubuntu (any variant) 15.04 I have issues with microphone not working (distorted, very weak sound) and Xorg crashes my entire session with Libreoffice in k3.19+. Tested with many distributions.
So, to conclude, which one is recommended for a flawlessly working system? Do Linux distributions work better with Legacy, or UEFI? (if there is any difference in terms of functionality of the system)
For most hardware, the boot mode (EFI vs. BIOS) is irrelevant. The drivers Linux loads are identical in either case, as should be the performance. The main caveat here is that the hardware may be initialized in different ways depending on your boot mode, and if the Linux drivers make assumptions about how the hardware is initialized, one way or the other may work better. This sometimes made booting one mode or the other (usually BIOS mode) preferable in the past, but this type of problem is becoming rather rare today. This type of issue mostly affected video hardware and drivers, but in principle it could affect anything.
In your specific case, my suspicion is that you've got "bleeding-edge" hardware with poor Linux support, or perhaps hardware that requires special configuration to work correctly in Linux. Your best bet is to post separate questions about each specific device that's not working to your satisfaction. You can also test with both BIOS-mode and EFI-mode installations to determine empirically which one works better for you, since there is no way to accurately generalize which mode is best.
The correct answer to the question of which mode is best is: It depends. For instance:
If you need a more specific "BIOS" or "EFI" answer as to which you should use, you'll have to provide much more specific information about your setup.
Have I made my point clear?
There is no reason to use UEFI except if you want to boot Windows or if you want to boot from a partition more than 2 TiB is size. And you can always find a solution for the latter.
UEFI brings a heck of a lot of disadvantages with it and no advantages. Don't use it.
You're basically giving away control of your own computer to corporations. Don't do that, that's a bad idea.
You also will have problems with using certain tools which cannot deal with GPT (the only improvement from bios to uefi is support of GPT, everything else is disadvantages and there's many of them). It's not that much of a problem if you use GPT on an external or secondary HDD, but don't boot from it.
If you don't have an HDD bigger than 2 TiB to boot from, there's no problem in the first place. If you do have an HDD with more than 2 TiB to boot from but don't need to have a partition bigger than 2 TiB and don't need to have the beginning of a partition after the first 2 TiB, you also don't need GPT and therefore no UEFI. (So having a 4 TiB HDD with some partitions in the beginning and the last 2 TiB filled with 1 2 TiB is fine and works without GPT.)
As already stated above: This only is about the HDD you boot from. If you have an SSD for booting (which of course can't be that big because such big SSDs don't exist) and only want to use GPT for data storage, that's all fine and you don't need UEFI to access them.
The problem that support for hardware often is needed in form of a firmware for the hardware and a driver for the OS isn't solved by UEFI. It could've been but it isn't. UEFI simply sucks.
There is at least one good reason to install Linux on UEFI. If you want to upgrade the firmware of your Linux computer, UEFI is required in many cases.
For example, the "automatic" firmware upgrade, that is integrated in the Gnome software manager requires UEFI. No UEFI means firmware upgrades via LVFS/ fwupd / fwupdmgr will not work. Which, in most cases, means no firmware upgrades on Linux, at all.