Setting the Year once works, but when you try to set it again, it doesn't work anymore. Only happens to me with mp3 files.

I can't reproduce it (tried with both 1.0.x and 1.1.x), maybe your mp3 files have something special.
You can send one to me by email if you want.
Have you tried setting the tag with a brand new gmb ? ie : launching gmb with the option "-C /tmp/doesnotexist", adding the file and editing the year tag.

Same happens when I use that. Here's the terminal output:

Songs::Set(1 ARRAY(0x3b85a08) error CODE(0x3a5dfe0)) called from : EditTagSimple:/usr/bin/../share/gmusicbrowser/gmusicbrowser_tags.pm:1219
Tag::Write(1,[year 2006],CODE(0x3b72ef0))
in place editing.
ID=1 towrite :  at /usr/bin/../share/gmusicbrowser/gmusicbrowser_songs.pm line 1201.
ReReadFile(1) called from : main:/usr/bin/gmusicbrowser:2565
ReReadFile(1) called from : main:/usr/bin/gmusicbrowser:2565

And here the same thing with an mp3 file where it does work. Seems to happen only to some:

Songs::Set(7 ARRAY(0x2d209a8) error CODE(0x3a2d0a8)) called from : EditTagSimple:/usr/bin/../share/gmusicbrowser/gmusicbrowser_tags.pm:1219
Tag::Write(7,[year 2006],CODE(0x3b6c938))
in place editing.
ID=7 towrite :  at /usr/bin/../share/gmusicbrowser/gmusicbrowser_songs.pm line 1201.
ReReadFile(7) called from : main:/usr/bin/gmusicbrowser:2565
Changed fields : year at /usr/bin/../share/gmusicbrowser/gmusicbrowser_songs.pm line 1141.
Songs::Changed : IDs=7 fields=year
Update :  at /usr/bin/../share/gmusicbrowser/gmusicbrowser_songs.pm line 1222.
ReReadFile(7) called from : main:/usr/bin/gmusicbrowser:2565

I'll send you a file.

Thanks for the file, the problem was that gmb was setting the TYER id3v2.3 frame, but the TDRC id3v2.4 frame was present and left untouched. And gmb reads the first TYER/TDRC it finds.
I fixed it by deleting TYER frame from id3v2.4 tags and TDRC frame from id3v2.3 tags when setting the year.
(TYER is deprecated in id3v2.4 and replaced by TDRC)
I've committed the fix in git earlier today.

That was not the problem I had before. Sorry for not telling this earlier though.

I set the id3v2.4 tag when trying all the tag options to narrow down the problem. The time I changed it to set the id3v2.4 tag it changed, but after that I couldn't change it again. So that only worked once.

Now when I try again in git, it only works with the id3v2.4 tag option switched on in the preferences. Is that how it's supposed to work?

The "write id3v2.4 tags" only affect tag creation (ie: when there is no id3v2 tag in the file). Which is not said in the tooltip as I thought, I'll have to fix that.
The fix I mentioned works with the file you sent me without checking the id3v2.4 option (not that it should matter). The file you sent me has an id3v2.3 tag with a TYER set to 2006 and a TDRC set to 2007. Without the fix, gmb only set TYER (as it's a id3v2.3 tag), with the fix, it delete TDRC too, as it shouldn't be there in an id3v2.3 tag.

If you still have files with which you can't set the year (with or without the id3v2.4 option), send one to me by email.

Ah, after a reboot it works. I either didn't run my update script in the right way (which I ran again this morning), or I just needed the reboot. Anyway, it works now. You're awesome ;)