Driving Multiple Relays

I’m working on a project where I’m making a switching circuit for conducting the Van der Pauw method on a sample. This circuit controls the destination of four signals that go to four outputs. The destination of each signal must be changed due to different tests on the sample. I am switching these signals using a series of electromechanical relays: Relay SPDT Sealed - COM-00100 - SparkFun Electronics
Twelve of these relays need to be controlled simultaneously by a Arduino UNO. I have each I/O pin connected to a 220 ohm resistor into the base of a 222 NPN transistor. The collector of the transistors are attached to the coil pin of the relay and the emitter to ground. The other pin of the coil is attached to +5V. The transistor acts as a switch to separate the Arduino from the inductive load of the relay’s coil.
I initially tested this method with one relay operating on the blink example to switch power between two LEDs. It worked fine so I wired up all the relays and now it will not switch any of them. I think this may be that the Arduino may not be able to drive twelve transistors. An idea that has been proposed to me is to add another transistor to drive the current transistor but I’m not convinced this will solve my problem.
This is my code to control this circuit:

/*
  Hall Effect Controller
  By: Russell Kastberg
*/

// Varible Declaration:

  // These are the inputs from the rotary switch, this switch
  // determines which setting the controller is on.
  int setting_0 = A0;
  int setting_1 = A1;
  int setting_2 = A2;
  int setting_3 = A3;
  int setting_4 = A4;
  int setting_5 = A5;
  int setting_6 = A6;
  
  
  // These are the outputs to the relays. Each varible controls
  // the operation of a single relay.
  int relay_0 = 0;
  int relay_1 = 1;
  int relay_2 = 2;
  int relay_3 = 3;
  int relay_4 = 4;
  int relay_5 = 5;
  int relay_6 = 6;
  int relay_7 = 7;
  int relay_8 = 8;
  int relay_9 = 9;
  int relay_10 = 10;
  int relay_11 = 11;
  
  int error_pin = 13;
  
// The setup function, which defines which pins will be inputs
// and outputs.
  void setup()
  {
    // The switchs' pins: inputs
    pinMode(setting_0, INPUT);
    pinMode(setting_1, INPUT);
    pinMode(setting_2, INPUT);
    pinMode(setting_3, INPUT);
    pinMode(setting_4, INPUT);
    pinMode(setting_5, INPUT);
    
    // The relays' pins: outputs
    pinMode(relay_0, OUTPUT);
    pinMode(relay_1, OUTPUT);
    pinMode(relay_2, OUTPUT);
    pinMode(relay_3, OUTPUT);
    pinMode(relay_4, OUTPUT);
    pinMode(relay_5, OUTPUT);
    pinMode(relay_6, OUTPUT);
    pinMode(relay_7, OUTPUT);
    pinMode(relay_8, OUTPUT);
    pinMode(relay_9, OUTPUT);
    pinMode(relay_10, OUTPUT);
    pinMode(relay_11, OUTPUT);
    
    // Error pin with LED indicator
    pinMode(error_pin, OUTPUT);
  }
  
// The loop function which checks the switch's input and executes
// the proper output to control the relays. The function then 
// loops back and continues the process all over again.
  void loop()
  {
    // For the case that Lead1 goes to OutputA, Lead3 to
    // OutputB, Lead2 to OutputC, and Lead4 to OutputD.
    if (setting_0 == HIGH)
    {
       // Lead1 to OutputA
       relay_0 = LOW;
       relay_8 = HIGH;
       
       // Lead3 to OutputB
       relay_1 = LOW;
       relay_9 = LOW;
       
       // Lead2 to OutputC
       relay_2 = HIGH;
       relay_10 = HIGH;
       
       // Lead4 to OutputD
       relay_3 = HIGH;
       relay_11 = LOW;
    }
    
    // For the case that Lead1 goes to OutputB, Lead3 to
    // OutputA, Lead2 to OutputC, and Lead4 to OutputD.
    else if (setting_1 == HIGH)
    {
      // Lead1 to OutputB
      relay_0 = LOW;
      relay_8 = LOW;
      
      // Lead3 to OutputA
      relay_1 = LOW;
      relay_9 = HIGH;
      
      // Lead2 to OutputC
       relay_2 = HIGH;
       relay_10 = HIGH;
       
      // Lead4 to OutputD
       relay_3 = HIGH;
       relay_11 = LOW;
    }
    
    // For the case that Lead1 goes to OutputC, Lead3 to
    // OutputD, Lead2 to OutputA, and Lead4 to OutputB
    else if(setting_2 == HIGH)
    {
      // Error indicator on
        error_pin = HIGH;
      
      // Lead1 to OutputC
        relay_0 = HIGH;
        relay_4 = HIGH;
        
      // Lead3 to OutputD
        relay_1 = HIGH;
        relay_5 = LOW;
        
      // Lead2 to OutputA
        relay_2 = LOW;
        relay_10 = HIGH;
        
      // Lead4 to OutputB
        relay_3 = LOW;
        relay_11 = LOW;
   }   
    
   // For the case that Lead1 goes to OutputC, Lead3 to
   // OutputD, Lead2 to OutputB, and Lead4 to OutputA.
   else if(setting_3 = HIGH)
   {
     // Lead1 to OutputC
       relay_0 = HIGH;
       relay_4 = HIGH;
     
     // Lead3 to OutputD
       relay_1 = HIGH;
       relay_5 = LOW;
       
     // Lead2 to OutputB
       relay_2 = LOW;
       relay_10 = LOW;
       
     // Lead4 to OutputA
       relay_3 = LOW;
       relay_11 = HIGH;
       
   }
   
   // For the case that Lead1 goes to OutputA, Lead3 to
   // OutputC, Lead2 to OutputB and Lead4 to OutputD.
   else if(setting_4 = HIGH)
   {
     // Lead1 to OutputA
       relay_0 = LOW;
       relay_8 = HIGH;
     
     // Lead3 to OutputC
       relay_1 = HIGH;
       relay_5 = HIGH;
     
     // Lead2 to OutputB
       relay_2 = LOW;
       relay_10 = LOW;
     
     // Lead4 to OutputD
       relay_3 = HIGH;
       relay_11 = LOW;
   }
   
   // In case of an input error with the switch, the program will
   // perform the first case as to not damage the sample.
   else
   {
     // Lead1 to OutputA
       relay_0 = LOW;
       relay_8 = HIGH;
       
     // Lead3 to OutputB
       relay_1 = LOW;
       relay_9 = LOW;
       
     // Lead2 to OutputC
       relay_2 = HIGH;
       relay_10 = HIGH;
       
     // Lead4 to OutputD
       relay_3 = HIGH;
       relay_11 = LOW;
   }
  }

This relay's coil is rated up to 12V, with a minimum switching voltage of 5V

It may be that with only one relay turned on the 5V was enough to actuate it but with two the 5V is pulled down below the turn on voltage for the relay. Are you using the Arduino 5V to power the relays? Can you connect the relays to a higher voltage (7-12V)?

I think you need to

digitalWrite (relay_x, HIGH);
digitalWrite (relay_x, LOW);

the relay pins to make them change.

I'm making a switching circuit for conducting the Van der Pauw method on a sample.

Wow, that was the project I worked on for my final year undergraduate project in 1974. Back in those days there were no micro controllers and I had to design the whole thing with TTL logic. It had the sample on a arm and lowered the sample between two magnetic poles, took some measurements and then lifted it out turned it round and lowered it again. I still have my final report on it.

Anyway back to your project:-

I think this may be that the Arduino may not be able to drive twelve transistors.

No driving the relays will be fine.

  int relay_0 = 0;
  int relay_1 = 1;

Do not use pins 0 and 1 to drive things. These are serial communication lines.

Why use lots of inputs for the switch? Why not use the switch to tap of a voltage from a resistor chain and feed it into one analogue input pin?

Just write a test sketch to turn the relays on one at a time and make sure they work before embarking on the more complex code.