¡Muchas gracias a ambos!
Perdón por contestar tan tarde, pero he estado un poco ocupado.
Resulta que al final, el error venía de otras acciones que había antes del código que he puesto, pero al menos he caido en poner todos esos condicionales de manera mucho más sencilla.
Gracias de nuevo.
Un saludo.