Efectivamente el problema es que cada vez que haces un postback la grid vuelve a cargar los datos originales y pierdes lo que has añadido previamente. Tienes varias opciones para solventar el problema.
Puedes verificar que no sea un postback para cargar la grid
Código:
If not IsPostback then
'carga aqui tu grid
end if
Otra opción es insertar el registro en el origen de datos en vez de hacerlo sobre la grid o utilizar un datatable intermedio, yo sin duda me quedo con verificar si es un postback o la carga inicial de la pagina aunque sin ver el codigo completo no te sabria decir cual es la mejor solución.
Un saludo