Я знаю, что это не ответ, но я не смог повторить вашу проблему.
Используя следующий код в консольном приложении, я получаю массив длиной 1:
testdbDataContext db = new testdbDataContext();
Address a = new Address();
db.GetTable(a.GetType()).Attach(a);
a.Address1 = "simple change";
var result = db.GetTable(a.GetType()).GetModifiedMembers(a);
Console.WriteLine(result.Length);
Console.ReadKey();
Вывод на консоль 1
.
Попробуйте изменить другое свойство объекта foo и посмотрите, отличается ли ваш результат.