There are a range of possibilities here. The best course of action would be to determine what is happening during the times when it takes a long time to establish a connection and transfer data from the branch office. There may be line quality or utilization conditions that are causing the degraded performance. For example, performing a PING when this occurs would reveal if there were any packet loss or latency issues. You can also request that the circuit provider monitor the line to assist with troubleshooting.
Is it always the same type and amount of data being transferred or does it vary? The reason I ask is because if it is the same type and amount of data all, or most of the time and the issue is sporadic then there probably isn’t anything wrong with the circuit in general.
Did this ever work “quickly”? There could be a lot of database chatter as some (most) client/server applications are not made to work across a link smaller than a typical LAN link. 128k is definitely a small link size these days. Can the data be compressed before moving across the wire and then uncompressed on the other side? Pings will show you how quick the round trip time is between the sites but data transfer rates may be different due to window sizing and acks, etc. Try a ping with large packets – ping xx.xx.xx.xx -l 1300 -n 100 . This will ping a remote host with 100 – 1300 byte packets. This will help you see if the link is capable of handling large packets. You can change the numbers as needed. As Wrobinson suggests, there may be other traffic already on this link that this upload saturates the capacity. You need to understand how busy the circuit is before adding additional capacity.