多少無駄な計算を行う事になるかもしれませんが、Enlargeの方の重み計算対象範囲を、

From: (int)Math.Floor(scaleFactor * (y - 2) - 1)
To: (int)Math.Floor(scaleFactor * (y + 3) + 1)

にしたら、かなり改善されました。