I have two columns in my sheet, both are Contact List columns and both reference columns in another sheet that are also both Contact List. Under Program Developer (below), you'll see the formula returns just the name, but under Program Manager, it returns the contact.
I have essentially the same formula in both:
Program Developer
=IFERROR(INDEX({ProgramCodes-ProgramDeveloper}, MATCH(VALUE([Program Code]@row ), {ProgramCodes-ProgramCode}, 0)), "No Match")
Program Manager:
=IFERROR(INDEX({ProgramCodes-ProgramManager}, MATCH(VALUE([Program Code]@row ), {ProgramCodes-ProgramCode}, 0)), "No Match")
Why is one just a name, and the other in a contact? Incidentally, I tested putting the formula for Program Manager in the Program Developer column, and it still shows them as Contacts, not just text.