Around line 127, you have:
colorPickerCollection[colorPickerID].rgb.r# = 255
colorPickerCollection[colorPickerID].rgb.r# = 255
colorPickerCollection[colorPickerID].rgb.g# = 0
colorPickerCollection[colorPickerID].rgb.b# = 0
That first line should probably be:
colorPickerCollection[colorPickerID].rgb.a# = 255
Also, I have found that if you get a pixel from a MemBlock as an integer then parse it with GetColorRed() GetColorGreen() GetColorBlue() GetColorAlpha() that it makes for more readable code (instead of getting individual bytes).