Paul, I consider this issue closed. Basically, as Jp3141 pointed out, I did not include a capacitor of at least 10uF to stabilise the TL1431. The inclusion of either a 33uF or 100uF capacitor (of which I happen to have on hand) solved the oscillation problem. Jp3141, just to give closure to this issue, I did write in to TI and they confirmed that there is indeed a printing error on the X-axis of that chart.
As I have posted on
post #22 for the 12 bit result and
post #24 for the 10 bit result on the Teensy 3, there are some inherent noise problem that I can't overcome. Using the Arduino Leonardo (post #23) gave a squeaky clean output which had almost zero noise (no tails at all on the frequency histogram plot of the ADC results).
However, in all fairness, the output of the ADC is still usable. The maximum difference in the channel means across A0 to A9 in 12 bit mode is 1.96 units (out of the max 4095 units). The standard deviation is about the same across every channel and is around 2.36. The kurtosis of the distribution is > 0 which implies excessively long tails in the distribution (i.e., increased frequency of ADC readings far beyond the average reading). This may imply that there seem to be some random uniform noise in the ADC reading as oppose to the expected Gaussian distribution.
How I intend to overcome this problem is to simply read multiple values (say, maybe 50 readings??) and then average them up (to minimise the random noise). Given a std dev of 2.36, it should still produce very usable results for my application (which I only need 1 reading per second to measure the battery voltage). As for the differences in means across the channels, since they are around ~2 ADC units which is (2/4095 x 2.5 V) = 1.22 mV, I guess I shouldn't be too worried since the component tolerances that I'm using is around 1% anyway which is higher than these channel differences.
I'm very glad that I went with the Teensy instead of the Arduino. I do not think I will get this kind of responsive, personalised and experienced tech support if I had posted this in the Arduino forums.