The best method I can think of is storing the record in a variable by calling:
var record = gridPanel.getSelectionModel().getSelected();
Recreate your grid whenever it is needed then, assuming the new gridStore structure bound to the new grid is the same as the previous gridStore, you can call:
gridStore.add(record);
That should then add the record to your new store and thus to your new gridPanel. Hope it helps and I hope I understood your question correctly.
EDIT: You can also select the records by calling: gridPanel.store.getById("id");
EDIT2:
So to select a row in a gridPanel based on a record's ID you need to do 2 things.
1) Get the index of the record on the gridPanel:
var recordIndex = gridPanel.store.getIndexById("id");
2) Select the record on the gridPanel using the index:
gridPanel.getSelectionModel().selectRow(recordIndex);