You need to set the ports to output first, before you can use them.
To do that you use the DDRx (Data Direction) registers. Your code should look like:
// Set the pins all to output
DDRA = 0xFF;
DDRC = 0xFF;
DDRD = 0xFF;
PORTA = B0000000; //29---...
I added pull-up resistors to the board and it started working. Turns out that the boards weren't well designed and the I2C lines were pulled up to 1.8V instead of Vin. By removing the pull-ups and adding pull-ups to Vin, the circuit started functioning. The circuit worked with Mega because it has in-built Pull-up Resistors.
Your current code will not show all notes of a scale. Only the notes at 1 and 2 will light up, since you don't sum up the numbers, that you have stored in MajorScale. But I think it is not a great idea to sum them up programatically, since this is a constant and you don't win much by representing the data this way. Instead you should directly initiate the ...