If you have chosen to display the expiry date on your coupon the pass will show whatever value is stored in the to the universal.expiryDate field.
The value for universal.expiryDate is calculated based on the settings you have chosen in the coupon details page. In the example below, PassKit will look at the offer end date and use that as the Expiry Date to show on the pass.
In the example above, if you later change the offer end date of the project and click UPDATE, any active pass that has not changed expiry date before will automatically update to this new expiry date.
Any passes that you have previously changed the expiry date individually (within the portal or using the PassKit API) will remain with that expiry date.
Any pass that has already been redeemed or deleted from PassKit will (perhaps obviously) not update (as it's already been used or voided).