Prompt_Plural is a method that does not belong to an IGH_Component, but a GH_PersistentParam. I guess you would see your messages if the elements are set from a param, but not done from a component ? In other words error messages generated by the parameter don’t rise up to the component level.
I did this but inside SolveInstance, not inside Prompt_Plural.
You could try to set the inputs of the component as optional, so the Input parameter xxx failed to collect data never shows up.
Then after DA.GetData(), test for your various error messages.
It seems you can access the runtime messages from an input param : Params.Input[0].RuntimeMessages()
Untested solution there, maybe a step in the right direction.