V XSLT se pokud možno nepoužívá for-each, ale použije se apply-templates.
Porovnání ItemCode=ItemCode je zjevně nesmysl, XPath procesor nemůže vědět, že tím jednou myslíte ItemCode z kontextu před spuštěním XPath výrazu a podruhé ItemCode v rámci XPath výrazu.
Udělal bych to tak, že si vytvoříte šablonu na ResultSet/Row, v té si uložíte do proměnné hodnotu ItemCode, a pak zavoláte další šablonu, ve které budete mít tu vaši podmínku – a hodnotu předchozího záznamu budete porovnávat s tím, co máte uložené v proměnné. Přičemž ještě přidejte podmínku, že vás zajímá jenom první z předchozích záznamů (tj. za Row přidejte [1]) – tak, jak to máte teď, by se ta podmínka vyhodnotila, pokud by v kterémkoli z předchozích záznamů byla vámi hledaná hodnota.