OK - I think I've got around it...
I've left in...
data_grid.focusEnabled = false;
data_grid.mouseFocusEnabled = false;
... in the set up for the data grid, so the shift and ctrl pressed functions work correctly.
I've added...
stage.addEventListener(Event.DEACTIVATE, displayDeactivated, false, 0, true);
private function displayDeactivated(event:Event):void { stage.focus = stage; }
...so that the focus is completely taken away from the datagrid if someone minimizes or clicks out of the app. Clicking back in the app no longer throws the error.