Haste wins in value but only in plateaus, which is its only valuable to have enough haste to reach an extra tick on a certain dot, but between those specific numbers it has almost no value. This could explain your stat weights moving around.

I dont have hard numbers but for explanations sake lets say at every 200 haste rating all your dots get one extra tick. Its only beneficial to have 200, or 400. Having 399 would have the same value as having 200. Mastery benefits linearly though, so its just a flat out 'the more you have the better' pretty much the same for crit but only until you reach a certain level.