>> "Is it possible to prematurely expire a trial (to test trial expiry)? "
No.
>> "Can you completely remove all traces of TA on a test computer so we can easily test clean builds? (Appreciate this kind of defeats the purpose but is there a debug setting)"
You can remove some information. (TA_Deactivate() with erasePKey set to true)
The best way to test "clean slate" is to use VMs and snapshots of the VM.
>> "How can we simulate users having to re-authorise their product codes?"
Set the nDaysBetweenChecks to 1, and then it will verify every day. Only enable that for your debug builds. Better to use our default values.