DoReauthorization is for use only with basic authorizations, not order authorizations. To use DoReauthorization you must have previously authorized a transaction and that transaction must have passed its settlement period. Calling DoReauthorization on a valid transaction will fail.
You can authorize a transaction with the DoExpressCheckoutPayment PaymentAction property set to "Authorization".