Is there a way to store and load different profiles? For example if I had two HID over GATT profiles (one for mouse, another for gamepad) is there a way to store both in flash and select them on boot?

>> You can cofigure the BLE component to support both the HID Mouse and the Gamepad report maps and reports, but selectively enable either or both the report Characteristics using CyBle_GattsDisableAttribute and CyBle_GattsEnableAttribute APIs.

These two APIs accepts an attribute handle as the parameter and disables/enables all the attributes underlying the specified attribute handle. If the attribute handle parameter is a Service handle, then the complete service is enabled/disabled, if the attribute handle parameter is a Characteristic handle, the complete Characteristic is enabled/disabled.