I have a feeling that's because you have the firmware overrides enabled. That means that every time you load or save that profile, it is going to override your firmware settings to make them match whatever option you have in the "firmware type" drop down list on the G-Code tab. So I have a feeling there are 2 easy ways to accomplish what you want.
First option is that if all of your printers use the same type of firmware (i.e. all Marlin/Repetier or all MakerBot/Sailfish), then I would just go ahead and disable the firmware overrides. Then you can customize things however you want and they won't go away.
Second option would be best for people who have multiple printers that have different firmware types and require different macro commands. In this case, I would recommend making a unique firmware configuration for each printer that requires custom macros. For example, let's say I have a Prusa i3 and a Printrbot Metal Simple, both of which I want to use different macro commands. To do this, go to tools --> firmware configuration, and then setup everything correctly for the first printer. When you're done, click Export and save the .frm file somewhere safe on your hard drive. Then do the same for the second printer. Now, click "Edit Process Settings" and load the profile for the first printer. If you click on the G-Code tab, you can see that your custom firmware has now been added to the "Firmware type" drop down list. So you can actually load a completely custom firmware configuration for each printer with completely custom macros
I attached a screenshot that shows you what option 2 would look like

- FirmwareConfigWithMacros.png (11.28 KiB) Viewed 10189 times