After the ui form /model becomes dirty (user first starts the first interaction with form), you would store the state of model(naturally the ui) in an object, let's call it 'bag'. You continuosly update the bag as user modifies the values. Before user tries to navigate away from the form (close window, go back and forth in browser etc), you can save this bag to cookie (if it is small) or do a post to your server and save it as a json object in a table with 4 fields like id, jsondata, modelUiIdentifier,userIdentifier. Later when that page is loaded later, you can get this data (if it exists for that model/ui and user) and hydrate your model object (which would update your ui automatically).
If you are using angularjs, just iterate through $scope object of the related ui section by copying its data (non "function" values in the $scope object and send to server like explained above)