Why can't RGB or bicolour LEDs produce a decent yellow?
Most probably because of short wavelength of your green LED and not as monochromatic green as you might expect (x and y coordinates closer to the center). If you take a look at the CIE 1931 curve and plot your red and green x and y coordinates (listed in the datasheet from serious manufacturers, otherwise assume the pure wavelength on the outer rim or move it in slightly), the only colors you are able to produce are along that line. For RGB, it's the same but you are forming a triangle instead and you can only mix color within that triangle.

Yellow is tricky here because you need your green to be almost yellow to be able to mix green and red to a good yellow, at which point you have sacrificed a lot of green and cyan colors. To make things worse, the production spread in green LEDs is very high compared to other colors, so it will vary unless you calibrate each one, at least from batch to batch.



Pardon my paint skills here, but let me give you three examples.
A "yellow-optimized" RGB LED will have high wavelength for the green LED but you are missing out a large area of light blue, cyan and blue-green:



A cyan-optimized RGB LED has short wavelength on the green LED and will sacrifice the yellow colors to get good cyan.



Commercial RGBA (A for amber, thanks for pointing it out  Ilmari Karonen) LEDs exists for this reason, at which point you will have a trapezium (thanks Wildcard!) with four points you can draw all the colors within, at the added expense of one more LED and associated driver channel.