We had this exact problem at a former place of employment, i.e. we had contract requirements to provide access to original oil field data for the 25-year lifetime of the field, the problem was that most of this data was in the form of seismic data locked into a specific version of the exploration sw.
The solution we came up with depended on making a virtual machine image of everything needed to run the original application & data, including license files and user databases, and then freeze the system clock: This way we could restart that image at any point in the future and as far as the sw would know it was still 2005.
We would still need regular maintenance, to make sure that newer versions of the virtualization platform could still run the original image. In the worst case we expected to have to add an additional virtualization layer, i.e. so we could run the 2005 sw inside a 2015 virtual machine which would run inside a 2030 VM host.
This approach has of course been used to good effect in order to save classic games.