Hi Scott,
I was able to update the email address at the customer level, not the contact person level (attached). There are a few fixed values and I removed any loops in the script.
For my data, the customer number (object key) is 21000. I tried different variations of the object type, semantics (context), and object key (contact person), but I didn't have any luck beyond the general data.
This table might help with some of the values needed in the BAPI:

I also attached the BAPI documentation.
Thanks,
------------------------------
Maria Simpson | Senior Sales Engineer
Winshuttle North America | 4255276647
------------------------------