Some very good questions, here are the answers for you:
tps_user_message and tps_user_message_recipient
We have provided scripts to auto-archive these for some time now, you can find them on SQL Mail archiving scripts. Alternatively, if you have 7.3.1 you can schedule an action to delete these via your Service Desk console.
This table can get very large and can affect performance so it's a good idea to manage it properly. A script to do that is available on Script to clear the TPS_USER_SESSIONS table. Future releases of the Service Desk product will automate this functionality.
tps_attachment_data, pm_process_assignment, tps_audit_data
I would not recommend removing any data from these tables unles the size of them is a serious issue for you. These tables being large has no impact on the performance of the database. Deleting this information goes against the ITIL principal and makes reporting on historical data difficult.
We have also provided a script to clear the tps_user_message and tps_user_message_recipient tables if you prefer not to archive them, you can find this script on Clearing the mail tables instead of archiving them.
Is there a script to remove the tps_attachment_data please. The speed of my dev system is so slow i'm trying to slim it down as much as possible. Or are you referrng to this: