The cause of the problem was the default behaviour of the Enter key to move to the next row down, which didn't exist.
I couldn't trap the Enter key with OnKeyPress or any other event so with much looking I found a post with some code that made the Enter key act as a Tab key, but it also prevented other controls from working as they should because they needed the default behaviour of the Enter key. More looking and I found some code for another control and pieced it together with what I already had, to make the code for a Custom Class for the DataGridView. Then I had to find out how to make a Custom DataGridView and get it on my form, I've never done it before. The end result is a small piece of code that works perfectly.
This is what I ended up with.
Public Class MyDataGridView
Inherits Windows.Forms.DataGridView
Protected Overrides Function ProcessCmdKey(ByRef msg As Message, keyData As Keys) As Boolean
'Make the Enter key behave as a Tab key
If msg.WParam.ToInt32() = CInt(Keys.Enter) Then
SendKeys.Send("{Tab}")
Return True
End If
' Handle all other keys as usual
Return MyBase.ProcessCmdKey(msg, keyData)
End Function
End Class