¿no es más simple que primero muestres solo un select, luego de que el usuario elija, llenes otro select pero con
modalidad múltiple, y vuelvas a recargar el primero pero eliminando las opciones elegidas, y si haces cien en el múltiple, se elimine esa opción y recargues de nuevo el primero?.
es cuestión de interfaz, solo concentrarte y trata de dar lógica al requerimiento sin volverlo complicado.