Integration Values are meant to solve this problem:
"I want to enable state and country picklists in an existing org, but I have an API integration that updates data using the full names of states and countries in the text-type
Country fields, and I don't have time to update the integration to use the
CountryCode fields instead. I need a way to tell Salesforce that when I use 'California' in the
State field, I really want it to put "CA" in the
So Integration Values are only meant to be used in the text-type
Country fields, whereas the code values are meant to be used in the picklist-type
CountryCode fields. It's a way to associate a long-form name with the picklist value, even when it doesn't match the code.
So in your example, you can either put '21' in the
ShippingState field, or put 'PB' in the
ShippingStateCode field, but not vice versa.