There is a lot to talk about and depending on your case there might be different solutions how to improve and refactor.
What I'd suggest first is to map out all triggers and workflows against each object and identify the dependencies. Then start looking at merging code and moving out code from triggers to classes and static methods. For each object I would create 1 trigger only and each piece of logic would be in a separate method which will be called from the trigger. That way you get very good visibility of the order of execution of things in your trigger.
Things to look out for and must do's:
1) SOQL queries in for loops
2) DML statements in for loops
3) Recursive triggers (calling each other X times) - you need to make sure each trigger is only called once and implement some mechanism to prevent from recursion
4) Use maps and avoid nested for/do-while loops
5) Comments, lots of comments
I am sure there is a lot more that I've missed and can be found in the documentation for apex triggers best practices and someone might have a different approach when it comes to complex trigger logic. Hope this helps you get started.