Hello Michael,
The instruction SIM_SCGC6 |= SIM_SCGC6_ADC0_MASK; isn't necessary due it is already set in ADC16_DRV_Init function:
/* Enable clock for ADC. */
CLOCK_SYS_EnableAdcClock(instance);
And for PMC_REGSC |= PMC_REGSC_BGBE_MASK, it is specified in Reference Manual's section 28.1.1 ADC0 connections/channel assignment a small note at the end of the table:
And when you specify A/D channel to be Bandgap (channel AD27) you only configure ADCH field for ADC0_SC1 register, so user should enable PMC bandgap independently because it is related to other module.
I hope this can help you!
Best Regards,
Isaac Avila