When I'm using the file export function from PowerPro to Xero, if I push across an invoice into Xero and then void it afterwards and push the invoice across again will PowerPro recognize that the invoice has been voided?

This depends on the invoice status in Xero ("Draft or "Authorised") and the PowerPro > Xero export settings
Xero only allows invoices to be changed programmatically if the invoices' status is set to "Draft"