I've found a great way to break a fixture profile (3.1.0). It turns out, if you have a parameter with modes, and you then delete that parameter without first removing its mode parameter, the mode parameter will continue to think it is serving as a mode for a parameter that no longer exists, thus making it impossible to make any changes to it. Even if I recreate the old attribute again, the mode will still think it's linked to it, but because it's a "new" attribute it actually isn't.