子.transform.localPosition.y=0;
で0になる。
子.transform.position.y=0;
で-10になる。

つまり親のtransform.position.yは10だ!

ってことではないのか?

function PatternScroll (line:int, speed:int) {
pattern[line].transform.position.y = (pattern[line].transform.position.y - ((5.2 / speed) * 0.1 / Time.deltaTime));
if(pattern[line].transform.position.y < (-5.2 * 7)){
pattern[line].transform.localPosition.y = 0;
}
}

じゃダメなん?