namespaces パラメーターは明らかに単なる文字列 (オブジェクトとして宣言されていますが) であり、"xmlns:aliasname='namespace'" (XML スタイル) の形式で XML 名前空間宣言を含める必要があります。例えば
xmlDocument.DocumentElement.SelectNodesNS("cb:person",
"xmlns:cb='http://www.addison-wesley.de/codebook'");
次のような XML ドキュメントで動作します。
<?xml version="1.0" encoding="utf-8" ?>
<persons xmlns="http://www.addison-wesley.de/codebook">
<person id="1000">
<firstname>Zaphod</firstname>
<lastname>Beeblebrox</lastname>
<type>Alien</type>
</person>
...
</persons>
エイリアス (cb:) が XPath で使用されていることに注意してください。
名前空間が XML スタイルでない場合、悪名高い COM エラー E_Fail が発生します。
SelectNodesNS の (貧弱な) ドキュメントには、次のように書かれています。このプロパティを使用して、デフォルトのネームスペースも設定できます。」
それによると、名前空間は文字列でなければならず、複数の XML 名前空間を含めることができます (まだ試していません)。それでも、なぜそれがオブジェクトなのかという疑問は未解決です。