If the firing pin selector snaps into place, at the top, and does not easily rock or move, then I would say that it is working, since it is firing the bottom barrel. In actuality, the selector hits the bottom firing pin with a little more force than the upper, over its increased radius from the hammer pin, or its pivot point. When its up, it looses a little force over this, but not much.
First, there is a possibility that it could be a weak hammer spring, or rust or dirt keeping the hammer from easily revolving around the hammer pin, or rust or gunk on the springs guide rod (plunger). It should not be loose, as if it could move backwards under no spring pressure. I would take the stock off, and look for a deformed or collapsed hammer spring.
Second, if you have tried other ammo, and the hammer spring is okay, then I would then say that it is either a fouled up, (dirty or rusty), or bad, upper firing pin spring, the nose of the firing pin not shaped right, or it is too short.
The nose of both firing pins should have a domed end, with no flat spot on the tip.
One test you could do, if the hammer spring is okay, is below.
1. push the bottom firing pin in, until it is where it would be, if hit by the selector. Measure the pins length, sticking out from the breech face. Use a business card, and mark a line with a pin, if you don't have something like a caliper handy, to use for depth measurement.
2. Do the same with the top, and see if the top firing pin protrudes through the breech face as far as the bottom.
3. If the top doesn't protrude as far, then it is not right.
You should be able to easily mash both firing pins in, to where they protrude the same, with a screwdriver, etc, from in front of the hammer, with it cocked. If the top does not mash in easily, then I would suspect dirt, rust, or a bad spring.