Currently, old revisions can be restored by loading them into the EditPage using the action=edit&oldid=12345. However, this will presently only restore the main slot, and will not work for content models that do not support direct editing.
Until T174033: Refactor EditPage to allow multiple slots to be edited atomically [MCR] is implemented, we need an alternative way to restore old revisions. This could be done in the same way that undo is currently implemented for MCR, per T189808: Make undo work with multiple slots..
Note that the same mechanism should also be used in case the main slot does not support direct editing, regardless of whether there are additional slots. This case is particularly relevant for Wikibase instances with entities in the main slot, like Wikidata.