Looks like it's not solely the labeling engine but something in the projection/reprojection, on-the-fly projection, GeoPackage or some combination that's the problem - see comment below.
The centroids produced by the labeling engine in QGIS 2.18.13 do not match up with centroids produced by the Vector-Geometry Tools-Polygon Centroids. It looks like it is using a very simple centroid algorithm, not looking at the shape but the bounding box? This leads to labels being way off from the center of the polygon. Any ideas? Is there some other setting I am missing? Nothing else is labeled. Yes, I can simply label the point output shapefile from the centroid tool, but this is not ideal. Asking here before I report this as a bug.