Not sure if you did this already, but you can open the kcrt_request_types_nls_800_1.sql from the upgrade bundle and try to see what it does to determine the issue. I am guessing it is something to do with the multiple records that select query is returning while making the update.
Run the following query in order to indentify the problematic constraint:
select b.table_name, b.column_name, b.position from user_constraints a, user_cons_columns b where a.constraint_name=b.constraint_name and a.constraint_name like '%SYS_C00128755%'
I remember a customer that received this same error and they found two fields with the same token name in an old request type. This was causing the upgrade failure in procedure to set the reference codes. He removed the problematic data entry and the upgrade completed successfully
Another possible cause:
Two or more REQUEST_TYPE_NAME in table KCRT_REQUEST_TYPES may be causing duplicated REFERENCE_CODE.
Check the content of table KCRT_REQUEST_TYPES
select * from KCRT_REQUEST_TYPES
Verify the integrity for this table content, especially duplicate values for REFERENCE_CODE