SOLVED!! OK, so this is a chaser, which means they do the wave. I had to initialize each LED at some offset value. If they are all
int brightness[] = {0, 0, 0, 0};
then they all go up and down exactly the same--no chase. I had been testing with the lead off Pin 9, which had an initial brightness of 251.
I started trying the other leads--and the transistor LEDs started fading as desired. It was only pin 9 that looked basically steady. I then realized pin 9 was set to 251, yet the max brightness was set at 220.
Now, this code is supposed to flip the sign if brightness goes too high or too low--above MaxB, below MinB. But 251 is so far from 220, it just kept flipping the sign of the fade amount so pin 9 was oscillating from 255 to 250 back to 255. I dropped Pin 9 down to 219, and now it goes up to 224, flips sign on the fade amount, and decrements back down to MinB.
Thanks a ton for all the help. I would never had looked at the code if not for @ZX80 , and @dlloyd and @LarryD got me to look closer at my parameters which is how I caught it.
And yeah, I know the min and max numbers are odd, but there is a reason for it. It is a ring chaser, and having the MinB value go to 0 is too stark, which is why I limit it to 80 or so. So here is my automated way to avoid that mistake again and evenly bound the brightness values (I know, they are still saturated at the higher end but I can tweak it later):
int ledPin[] = { 3, 5, 6, 9}; // LED pins to use.
//int ledPin[] = { 9, 6, 5, 3}; // LED pins to use.
//int brightness[] = {97, 148, 199, 219};
//int brightness[] = {0, 0, 0, 0};
int fadeAmount[] = {5, 5, 5, 5};
int MaxB = 220;
int MinB = 80;
int brightness[] = {MinB+1, MinB +(MaxB-MinB)/3, MaxB-(MaxB-MinB)/3, MaxB-1};
unsigned long interval = 1.5;
unsigned long previousMillis = 0; // will store last time LED was updated
int i = 0;