The circuit functions ok but as the LSD changes (1/10 of a second) the segments of the other 3 digits fluctuate in brightness. Why does that happen? Here's the UNO sketch:
#include "SevSeg.h"
SevSeg sevseg; //Instantiate a seven segment controller object
I don't know that Library, so can't speak as to how it might be doing the multiplexing.
You could open it up & take a look.
If you have common cathode displays (or common anode with a little more software) you could have MAX7219 do the multiplexing for you. It multiplexes at 800 Hz and keeps very even brightness. Just 1 resistor needed for all 4 displays (up to 8 even) and provides 15 levels of brightness control also.
10K resistor, 0.1uF cap, 10uF cap and the chip and display are all that's needed.
The dimming of the digits when the display is changed is caused by the way the code has been written in the SevenSeg library, or at least that version of the library you are using. It uses for loops and delay functions, what we call "blocking code". As long as the refreshDisplay() function is called continuously over and over, the display gets multiplexed and stays bright. But as soon as the code tries to do anything else, such as update the value displayed, the multiplexing has to stop for a moment, causing an apparent brief dimming.
It would be better if the library code was written using non-blocking functions, and used timer interrupts to allow the multiplexing to continue even when the sketch is performing other tasks.