Hi Tim,
I would suggest a slight change to your data model. You could add a helper entity that can be a parent to the list of NPEs in the list.
Then, instead of having the listview populated by microflow, you will add a dataview that retrieves the data and creates the NPEs and returns the helper entity. You can then add a listview inside of the dataview that displays the data by association to the helper entity. This way, you will be able to manipulate the entities that are associated to the helper entity and the list should update accordingly.
Another option could be to use a custom tab widget that allows you to select the default tab dynamically when the page reloads. I have used TabPageSelector before but Tab Switch is perhaps more up to date and should accomplish the same thing.
Hope this helps!
You could pass the list of non-persistent entities back into your Java Action, then update relevant attributes in the NPEs in your Java code. That way it would still be the same NPEs that are on the page and it should retain focus.
Good luck!