Re: How about the use of Cascading Temporal Surrogate Keys?
Screen scrape the data and then store it offline keyed on a hash of the non-key fields. You then have a stable PK for each logical tuple and can track key collisions in a counter field (assuming some denormalization in the source).
The entire concept is flawed. If you have enough attribute data regarding an entity then it will always be possible to resolve the PK in any quasi-normalised dataset because the corollary of a tuple being dependent on "the key, the whole key and nothing but the key" is that the key is dependent on the attributes and for any reasonable dataset, some of those attributes will have high cardinality.