change mouse move to:
VB Code:
  1. Private Sub picDraw_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles picDraw.MouseMove
  2.         If shouldpaint Then
  3.             Dim graphic As Graphics = createGraphicsEx(picDraw)
  4.             graphic.FillEllipse(New SolidBrush(_BrushColor), e.X, e.Y, _BrushSize, _BrushSize)
  5.             graphic.Dispose()
  6.             picDraw.Invalidate()
  7.         End If
  8.     End Sub

createGraphicsEx is a function I wrote:
VB Code:
  1. ' Returns a Graphics object to be used for drawing on the picturebox
  2.     Private Function createGraphicsEx(ByVal picbox As PictureBox) As Graphics
  3.         ' If the picturebox's image is nothing, create a bitmap the same size as
  4.         ' the picturebox
  5.         If picbox.Image Is Nothing Then
  6.             picbox.Image = New Bitmap(picbox.ClientSize.Width, picbox.ClientSize.Height)
  7.             Dim gr As Graphics = Graphics.FromImage(picbox.Image)
  8.             gr.Clear(picbox.BackColor)
  9.             Return gr
  10.         Else
  11.             Return Graphics.FromImage(picbox.Image)
  12.         End If
  13.     End Function
basically the only thing different is that instead of saying picbox.creategraphics, you are calling graphics.fromimage. That's all. I just made that a function so that you could use it again if you want. Also you shouldnt be drawing this with an ellipse. You should save the mouse position on each mousemove event and then draw a line from the last mouse position to the current mouse position.
You can save the picture now, and it wont disappear again