Sorry there was so much back and forth on this, I got confused myself between Projection and ProjectionList, and also because DeviceDensityOfStates kind of uses an older format compared to ProjectedDensityOfStates for bulk. And I didn't have any spin-polarized DDOS test data.
In the end all is quite simple. If you do want a script version I can provide that, however I don't see why you cannot use the GUI analyzer. After I ran your calculation and obtained the DDOS object, I just open it in the DOS Analyzer, select the Iron atom and "d" and spin up or down separated (flipped), then right-click the plot window and choose Export data. This gives a text file with the numbers. Doesn't that work for you?
If you do want the same done in a script, you would need this:
pdos_u = device_density_of_states.evaluate(projection_list=ProjectionList(elements=[Iron], angular_momenta=[2]), spin=Spin.Up)
pdos_d = device_density_of_states.evaluate(projection_list=ProjectionList(elements=[Iron], angular_momenta=[2]), spin=Spin.Down)
e = device_density_of_states.energies()
The tricky bit here is that the spin keyword is to evaluate, not to ProjectionList.