The list of layers comes back as a list of Layer*, which don't contain the LabelsDefinitions members. Can you try casting the Layer* to a FeatureLayer*? I'm not certain if this will work or not, but it is worth a try. Something like:
dynamic_cast<FeatureLayer*>(collectionLayer->layers()->at(0))->labelDefinitions->append(labelDef);