Why are my objects losing their member's values?
You might be running out of RAM. I suggest you change all lines like this:

 Serial.println("SWATBOT SETUP COMPLETE");


to use the F macro like this:

 Serial.println(F("SWATBOT SETUP COMPLETE"));


There seem to be a lot of places you could change.



Also I would not put code (implementation) into the .h files. That belongs in .cpp files. The .h files are for declarations.



Inside a class function, using this-&gt; all the time just makes things look cluttered, eg.

StabilityController::StabilityController(RemoteControl* rc, ROSController* ros, IMUController *imu) {
  this-&gt;_rc = rc;
  this-&gt;_ros = ros;
  this-&gt;_imu = imu;