The auto-scale/auto-axis routines have to be able to change the format of the axis labels, because the change in range is unbounded and may vary from seconds to days. You cannot use the same format in all cases. Each time axis tick variant has a default time format. For your specific case, you can change the default formats to use ChartObj.TIMEDATEFORMAT_12HM where ever TIMEDATEFORMAT_24HMS would normally be chosen, using the code below for the x-axis labels:
xAxisLab = new TimeAxisLabels(xaxis);
xAxisLab.TextFont = axisFont;
chartVu.AddChartObject(xAxisLab);
for (int i = 0; i < TimeAxisLabels.TIMEAXIS_MINUTE; i++)
if (xAxisLab.GetTimeBaseLabelFormats(i) == ChartObj.TIMEDATEFORMAT_24HMS)
xAxisLab.SetTimeBaseLabelFormats(i, ChartObj.TIMEDATEFORMAT_12HM);