Try
count(ancestor::Item/preceding-sibling::*) + 1
You wrote:
select="ancestor::Item[position()]"
If you don't mind me saying so, that was a pretty wild guess. You're not going to get the answer to this kind of thing by trial and error.
This expression is going to return an Item, not a number; and the predicate [position()] is short for [position()=position()] which is not very useful.
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference