Unqualified preceding-sibling and following-sibling xpath expressions return a sequence of all preceding or following siblings.
You need to add a predicate to select the previous or next sibling.
So, for your example:
../preceding-sibling::number[1]/two
or. more fully
../preceding-sibling::number[position()=1]/two
will return the previous sibling "two" element.
An example integer comparison:
(. > xs:integer(../preceding-sibling::number[1]/two))
See http://blog.orbeon.com/2007/06/xpath-reverse-axis-evil-at-times_04.html for more.
Regards
Jez