So I have tried lots of things, the servos have external power supply and breadboard and arduino Uno share same 5V and GND in common. I have tried powering through USB, it fails, through wall adapter and barrel jack it fails, I have tried with one servo it fails, 4xAA battery holder, it fails, and recently bought a 9v, hasn't arrived though. I honestly, followed rachel debarros tutorial because I was so desperate I was doing something wrong, my coding and everything else is the same and they still do that. So the servos work for a few seconds and they just freeze in whatever position they're in, if I unplug the power supply and put it again they all reset and work again until freezing.
Ditch the breadboard. Breadboards are for temporary experiments with low power logic circuits.
Breadboard tracks cannot support motor currents and will burn, so solder power connections,or use screw terminal connectors, or use servo power distribution PCBs.
Test each servo with the simplest possible circuit (as follows), with an external power supply capable of supplying 1 Ampere per small (SG-90), or 2.5 A per large servo (MG996R).
Sorry, it's because I've tried many things, that one is a 4xAA battery holder, but I have connected through the barrel jack with wall adapter and it still does the same when powering through USB, it does the same with all the power supplies I have tried.
You didn't have a power problem. You had a current problem. By putting 6V on the Arduino's 5V line you attempted to solve a current problem with more voltage. 6V is right on the ATmega328P's Absolute Maximum Rating limit. If your AAs were fresh, you've exceeded that limit. And now even if your Uno is still apparently working, it is damaged, and should always be viewed as suspect.
So I wonder something. If I replace the arduino and start again, cuz I just tested this... I'll need to unplug any power sharing from breadboard to arduino, have the servos receive power from the breadboard rails and independently power the arduino through barrel jack or USB, that's gonna work, right? I tested that but since you said the arduino's damaged maybe I should replace it.
PLEASE do this;
Connect ONE servo to your UNO.
Load and run the "Sweep" example for the servo library.
The UNO and your computer USB will be able to power this setup.
Try both servos separately and through the pins you are using in your project code.
The reconfigure your circuit to use the batteries to power the servos and use the "Sweep" code again.
If this works then;
Connect both servos to your circuit with the batteries and run the servo for each.
Then get back to us.
You need to develop your code in stages to find where the problem is.
You are now trouble shooting, which means logical and definite tests of your project.
Tom....
PS. Disconnect power each time you change your hardware configuration.