В чём ошибка определения переменной экземпляра?
Рекомендую напечатать 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 все объекты передаются по ссылке, и это надо учитывать, а при необходимости копировать их явно.
Нашёл ещё более красивый ответ:

g = [[0 for x in range(7)] for y in range(10)]