Ok, i thought the last two pieces of code in post 4 were for a different way of doing it. Misunderstanding. There in now, in the class. All the errors are gone apart from this one

Error 1 Overload resolution failed because no accessible 'New' accepts this number of arguments.

This is referring to line 11 of the code posted below.
Ive added comments in so you can see how right/wrong i may be about what im doing

vb.net Code:
  1. 'Mouse down event triggers the sub
  2.  
  3. Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
  4.  
  5. 'Define drawobj as a new instance of the class/sub "drawobject" with () for input of mouse coords
  6.  
  7.         Dim drawObj As DrawObject = New DrawObject()
  8.  
  9. 'set size/location property of the new object as mouse coord x -3, y - 3, & height 5, width 5
  10.  
  11.         drawObj.Bounds = New DrawObject(e.X - 3, e.Y - 3, 5, 5)
  12.  
  13. 'then conditions for the radio buttons
  14.  
  15.         If crsrO.Checked Then
  16.             drawObj.Shape = DrawObject.Shapes.Cross
  17.             drawObj.Color = Color.Blue
  18.         Else
  19.             drawObj.Shape = DrawObject.Shapes.Ellipse
  20.             drawObj.Color = Color.Red
  21.         End If
  22.  
  23. 'dont get this bit, but i think it might be adding the object just drawn to the pic box,
  24.  
  25.         drawobjects.Add(drawObj)
  26.  
  27. 'this as you said redraws it immediately so we can see it straight away
  28.  
  29.         PictureBox1.Invalidate()
  30.     End Sub
  31. End Class

how wrong am i?

Now you said previously that all the rectangle references should be changed to drawobject, well there are "rectangle" reference still written down in a few places but i think it should be there.
There is one instance of it in the picturebox_paint sub
all the rest are in the class Drawobject which you created

Should they all be there?