I understand that the add row button is currently doing a submit.
To not submit the page you need a dynamic action on the page.
Otherwise have a look at the following two threads Add row in manual tabular form using dynamic action and Accessing Tabular Form & Add Elements to Collection without Page Submit.
You're process could be something like:
Add the new values to the collection using the idea's in the second thread and at the same time add the new row.
And as second action refresh your tabular form.
If you get stuck set up what you have done on apex.oracle.com using the tables from the demo application.
I read both threads and implemented in my application but now as the Region is getting refreshed all the previous selected values in above rows are also getting refreshed to null.
I am updating the collection, but still not able to retain the previous rows values.
How can I retain the values of previous rows?
Is the name of your ondemand process exacly the same as the first parameter in apex.server.process.
Can you verify that the ondemand process is actually run.
Without seeing any of the code all I can do is making educated guesses at what is going wrong.