When you copy the data in the CurrentDataTable rejects any previous changes. If you look at the .IsDirty property before and after the copy, you will see that it will be False after the copy.
Me.CurrentDataTable.Rows(0).SetModified()
This will tell the BO that this record needs to be updated. If it is a new record then use this method:
Me.CurrentDataTable.Rows(0).SetAdded()