Рекомендую напечатать id объектов, сразу станет видно проблему:
for i in range(11):
print (f"`{i} {id(g[i])}")
for j in range(7):
print (f" `{j} {id(g[i][j])}")
#deb.write(str(i)+"-"+str(j)+" "+str(g[i][j].x)+" "+str(g[i][j].y)+"\r\n")
кусочек вывода`0 140084785493632
`0 140084785519824
`1 140084785520544
`2 140084785519872
`3 140084785520016
`4 140084785520448
`5 140084785520592
`6 140084785520112
`1 140084785493632
`0 140084785519824
`1 140084785520544
`2 140084785519872
`3 140084785520016
`4 140084785520448
`5 140084785520592
`6 140084785520112
Все элементы списка длины 11 по первому индексу ссылаются на один и тот же массив длины 7
Ошибка тут в том, что выражение
some_list * 11
конструирует список из 11 ссылок на один и тот же массив. Который на последней итерации цикла получает x=10 во всех элементах.
Решить можно, например, так:
g = []
for i in range(11):
g.append([])
for j in range(7):
g[i].append(Point(i, j))
В python все объекты передаются по ссылке, и это надо учитывать, а при необходимости копировать их явно.