I'm trying to connnect to a personnal server and upload a large backup. Only I get 3mbps up when I can download at 300 mbps form the same server just fine. After some attempts, I managed to find that some hop (#8) has a high Packet loss and using a VPN allowed me to have a much better connection. However, I still have reduced speeds due to the VPN. Is there a way to force my connection to use another route?
Simple answer: no. Unless you control the entirety of the routing hosts, then you cannot force them to alter their routing decisions. What ever they are evaluating (shortest path [most common], statically defined routes, or even fastest response) is controlled by their administrator and you can't force a change to that routing decision.
Something to consider: If I saw a node in my route had an unusually long processing time and/or packet loss rate, but that if I encrypted the same traffic before it got to that node (the VPN) the process was quicker... That'd have me worried that I'm going through a filter/firewall/IPS/something-that-is-reading-my-data. Now, #8 isn't that far away, so depending on where you are that could be an expected firewall-type device. But, in general, the transfer rate/response time shouldn't vary depending on the data payload. If it does, then something in the route is inspecting the payload and making some form of decision (different route, decreased QoS priority, decreased bandwidth availability, etc) based upon that content.