I’t could be that you set multiMesh.instance_count = colors.size() so early in the code.
The docs say: “This clears and (re)sizes the buffers. Setting data format or flags afterwards will have no effect.”
So, move that down to just before you assign the multimesh to the mmesh instance 3d node.