Array indexes start at zero, not one for starters, so this:
Dim CurrentRow As Integer = 1
Do Until DataSet.Tables("tblEventsSigned").Rows(CurrentRow).Item(1).ToString.Length = 0
Will always start at the second row, not the first. If there are no rows, it will fail.
Other than that, you need to start by looking at your data: we don't have it so we can't run your code in the same way you can.
So use the debugger: put a breakpoint at the top of the method that shows the problem and run your app. When it enters the method, it will stop and pass control to you. Single step through your code line by line, looking at the variables in the debugger and working out what should happen before you execute each row. Did it happen exactly as you expected? If so, more on. If not, why not? It should become fairly obvious where the mistake is , but as I said - we can't run your code so you will have to start looking!