I'd like GMB to be able to write labels to files.

If I change line 787 in gmusicbrowser_songs.pm from:

flags => 'fgaescil',

to

flags => 'fgarwescil',

would it be necessary and sufficient?

When dealing with ogg, will labels be written as custom fields?

When dealing with mp3, will labels be written inside a comment?

1) you also have to add a line telling it how it should write the tags, this one will do :
id3v2 => 'TXXX;GMB_Label;%v', vorbis => 'GMB_label', ape => 'GMB_label', ilst => "----GMB_label",
for mp3 this will write a custom text frame (TXXX) with a description of "GMB_Label" and a content is the name of the label, it will create one for each label.
for ogg, it will create a custom field named "GMB_label", also one for each label.

of course feel free to rename "GMB_Label" to what you want, be careful not to use a string already used for something else.
Ask me if need more info
(I don't remember at the moment if it would be easy to save multiple labels as one string separated with ";" or something else)

2) be aware that if you do this change, and then re-read the tags of your songs, you will lose all the current labels, to avoid that, you have to either
a) add the "_" flag  (flags => 'fgarwescil_',) that will tell gmb to keep the current value if no label tag is found
b) go first in the "tags" tab, push the "update tags" button, check label, and push ok. This will write all the current labels to tags
keep a backup of your gmbrc

3) you can test it with a few files in a temporary directory, launch gmb with the "-cfg /tmp/delme" command-line option, and experiment
The "advanced tag editing" dialog (bottom button when you edit properties of a single song) can show you how the values are saved.

4) of course using a non-standard tags might make it not easy to port your labels to standard tags once they (hopefully) exist, feel free to ask me when that happens. Though the 2)b) method should work, except the old tags will stay in the file.