If you're a programmer you could download the source code and compile your own custom version of the firmware. You could leave out the code for modes and other functionality you don't use and then use the memory freed to add other functions you want. It would be a lot of work though.
Or you could just replace the cc3d with a revo or sparky2 board. Much easier to do. If you want gps and baro functionality this is the best solution.
I don't know if you know the board history but the cc3d was discontinued around 2 or 3 years ago and replaced by the revo because of the cc3d hardware limitations. The only reason it's still available is the Chinese took the design and began manufacturing them.