Supongo que o bien tiene un solenoide defectuoso con una bobina de activación parcialmente cortocircuitada, o ha cometido un error de cableado importante en alguna parte, con una sospecha que apunta hacia este último.
La razón por la que supongo que has hecho algo muy incorrecto es por la corriente de 12 amperios. Suponiendo que su unidad base sea de 5 voltios, una resistencia de 300 ohmios le dará una corriente de base en el estadio de 10 mA. Una ganancia razonable (aunque ligeramente optimista) para un transistor NPN (a menos que esté usando un Darlington) es de aproximadamente 100, por lo que esperaría una corriente de 1 amperio. El hecho de que estés viendo 12 amperios indica que algo, en algún lugar, está muy mal, y en base a lo que nos has dicho, no puedo ser más específico.
EDITAR - Y, tenemos un ganador. Dos, en realidad. Bueno, tres. Primero, estás abusando completamente de tu Fluke. Es incapaz de medir la corriente directamente. Esto sugiere (ya que su uso no tiene sentido) que el "12" que está leyendo es en realidad el suministro de 12 voltios. Y no tengo idea de lo que son los 4 voltios. En consecuencia, no hay forma de saber qué está haciendo realmente el circuito. Ciertamente, si está tratando de medir la corriente poniendo su Fluke en serie con el solenoide, eso explicará por qué no funciona.
En segundo lugar, como lo ha señalado Bruce Abbott, entre otros, un 2N5551 no se adapta a sus necesidades.
Tercero, asumiendo que obtienes un transistor decente, no puede ser un solo transistor, o al menos no un BJT. Suponiendo que su Arduino puede suministrar 10 mA de corriente, debe tener en cuenta que para fines de conmutación (como su aplicación) debe asumir una ganancia de 10 para garantizar una buena conmutación. Esto pone un límite superior de aproximadamente 100 mA en su unidad de solenoide. Es posible que intentes 200 mA, pero no mucho más. ¿La solución? Utilice un MOSFET (tipo n en este caso) o un NPN de Darlington, como un TIP140 o TIP141.
END EDIT