At the moment when saving an entity, the original one is loaded as well to allow for checking for changes on the entity. However if you load an old revision of a revisionable entity and save it or call ContentEntityBase::hasTranslationChanges they will load the newest revision instead of the old one, which is wrong and ContentEntityBase::hasTranslationChanges will return TRUE if there are changes on some newer revision, which is wrong as well.
We have to properly load the right original entity for revisionable entities.
A failing test showing the problem is attached in the issue summary.