I am pretty sure the remaining errors are due to bad variable data. I think when I remove an index from the array that it is doing the wrong thing to the m_Size variable.
may have something to do with this piece..
Code:
...
--m_Size;
delete m_Array[m_Size+1];
...
m_Size += 50;
m_Array = copyArray(new Array[m_Size]);
...
the delete works, and the copy works, but after the copy phase I can only access the elements I copied, I get memory errors when I try to use the indexes after end of the previous array size. If that makes sense.