(3) Значит body тоже должно быть COMОбъект. Посмотрите в отладчике, что у этого body в свойстве all и что в childNodes. Я всегда через childNodes делал подобные переборы, хотя тут нужна рекурсия, так как структура иерархическая.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший