There might be several reasons for this issue.
First of all, please check all your Global variables are made null or empty for each loop unless you need previous values on them. because this occupies temporary buffer memory in the system which is going to cause slow in your execution.
Second, You have to check in your code how many waits you have used. also check you have proper sync activity with application. also please check nested loops in your WF. also see if you have used any property exists activity which will wait more than a normal time… these activities will show impact on performance. also run step by step and see out put values and check what might be causing issue to stop. if you suspect any step not able to find and failing the execution, then use eliment exists property and report output value in a message box and see each loop your WF is property detecting the element or not. some times element will take more time to load… that might be sync issue. some times element will change property in the back end. So, do some research… and you will find the solution. Hope my inputs are useful.