Yeah, you pretty much hit the nail on the head. There's three parts to BrewPi:
brewpi-firmware - The firmware on your Arduino/other device - There are a lot of differences, and the master branch won't work on an Arduino. Everything was pretty much rewritten between legacy and master, but works in mostly the same way. There were substantial changes to the "behind the scenes" variables used in the PID algorithm, however, as well as the conversion of everything to use PWM.
brewpi-script - The part that communicates between firmware & web interface - The legacy and master branch are functionally identical. They added an error message to prevent you from using the master branch with legacy devices, but if you disable that it works fine. A full list of all of the differences
is here.
brewpi-www - The web interface - The only real difference I've found is that the "master" web interface expects/sends the "master" behind the scenes variables (and therefore is only compatible with the "master" firmware when attempting to edit these variables). If all you're looking to do is set a beer profile, look at graphs, etc. then the master & legacy branches of brewpi-www are identical.
tl;dr - You happened to try to use the one feature in the "master" branch of brewpi-www that is incompatible with the "legacy" firmware.