OK, two of these blocks. There is the first detail that was left out of the first post. But there are so many more.
1. How many of the bases that the blocks must match are there or are going to be made? 1? 2? 100? 100,000? Are you going to also make those base(s) or are they an already existing part(s) who's dimensions you must work towards. If there are more than one of them, just how well do they match each other?
2. Just how many of these pins will there be in each block? One pin will always match. Two pins are a sufficient number for determining a single position for that alignment so that would be the optimum solution (see note below). So, is it two? Or are you going to over constrain it with three or more pins?
3. You say the pins must match holes in the base(s) when the block is right side up and when it is upside down. But you do not make any mention of what kind of fit that "match" entails. Is that also a press fit? Is it a close, sliding fit? Is it a loose fit? You really need to think about the numbers here. I mean if you have a 1/2" allowance here, I don't see much of a problem. But if you are splitting tenths, then that is an entirely different situation.
4. You say two of these blocks. Do they need to be interchangeable? Or can you just make one to match one base and the other to match the other base? This may determine how the job should be done.
5. Are you dead sure that this is the only time that you will be asked to make these? Or will the customer come back in a month, year, or several years and ask for additional, matching blocks and/or bases?
Note: Actually two pins in matching, round holes are still an over constrainment in this situation. One pin in a round hole and a second pin in an oblong hole would be the minimal constrainment needed to orientate the block on the base. I have seen this used in many situations where two parts had to be assembled in precise alignment. It is the generally recognized, optimum and professional solution for this kind of alignment problem.
Many questions need answers here.
I have to make two of these blocks.