Solución: Encontré la solución aquí: Impedir el cambiar de pestaña en un TabControl, solo que he decidido añadirle un poco de código de ejemplo para hacerlo más ilustrativo.
Private Sub TabControl1_Selecting(ByVal sender As Object, ByVal e As System.Windows.Forms.TabControlCancelEventArgs) Handles TabControl1.Selecting
If grabar = False Then 'Aquí pongo la validación que necesito, en mi caso es una variable pública que me controla si se han grabado los datos
e.Cancel = True
MsgBox("Grabe antes de cambiar de pestaña", MsgBoxStyle.Critical, "Error")
End If
End Sub