@ Gus -
Ok, after checking the full specs here: http://www.led-studien.de/datasheet/MY9221.pdf i came accross some points in your code.
Im not sure why you have an thread sleep 1 after sending the first command, and the empty nibble seems to make no sense (its sending the last bit of the command 4 times?) also there was an additional bit after the first set of led's.
second is, that the leds that are sent first, will be shifted through to the second controller when more data is added. so the second led-set should be sent first.
i combined the changes and pushed it to my fork:
there is no way for me to try this, but i hope my guesses are getting better