The Person::getPersonName() documentation says:
"public PersonName getPersonName()
Convenience method to get the "preferred" name for the person. Returns a blank PersonName object if no names are given.
Returns the "preferred" person name.
Could you add more detail for the expected behavior when there are no preferred names and more than one non-preferred name? Which non-preferred name will it return? Will it always return that name, or is it affected by other factors (e.g. order names were added, last edited time, etc.)