while it may be a PIA to fix it I would think really hard about doing so....
seems like it should not really be that hard to fix and might allow you to make the whole system better.
changing a date should not make the whole thing break.... and a PK should just be an internal pointer not a data value the users ever need to alter.
I agree that a PK should never be changed as a best practice.
I will also suggest making the change for an "id" column as PK, and those three columns as an unique index. Those other apps that read from these three columns wouldn't have to change at all, correct? If true, then the change is not so hard.