I had similar issue on another game in xbox and MS customer service replaced them for me. Not sure if Sony had similar support but might be work checking.
Bungie is unable to provide replacements for those expired codes. You will need to go back to the retailer you purchased from, and request a refund for the defective/expired product. Purchasing directly from your platform store is the only way to get access to Destiny 1 expansions, as all physical copies of the game will have expired codes. This is why those physical copies are sold for so much less than the platform stores charge.