push_back() приводит к переаллокации вектора, твои указатели после этого ссылаются на мусор в памяти.
- vector<cGeom> geoms;
+ vector<cGeom*> geoms;
- this->geoms.push_back( cGeom() );
- return &this->geoms.back();
+ this->geoms.push_back( new cGeom() );
+ return this->geoms.back();