I don't know man. ReplaceVertexWeights works for me. In the screenshot below everything was assigned to boneID 1, and after I run the script they are assigned to 2 and 3. I don't even have to normalize, because the results are normalized when they are applied.