Best is to take it step by step, make hardware work board by board. Arduino can control many devices, but the default shields may come with intercompatibility issues. If they occur, most of these issues can be solved, but it require a bit knowledge how to change the hard- and software in such a way that it will work again.
Almost every shield has its circuit diagram published and the real answer to your question is in these circuit diagrams. Basically what you need to do is check these circuit diagrams for IO-pins that are used on with every shield and then you need to gain an understanding which pins actually are a problem and which are not. For example, there can be several devices on the same I²C bus no problem. The SPI bus can support multiple devices too, but the trick here is the related select signal that requires a dedicated pin.
And if you have to slightly change the hardware, you'll definitely need to change the related software too. There is lots of support on Internet, but don't make your learning curve too steep that it demotivates you.
Actually this is precisely the reason why I don't really like the Arduino form factor shields, if you need to use alternative pins you have to hack the hardware. There are many break out boards that have similar functionality as Arduino shields, if you don't absolutely need to stack them, I'd go for those. Then again ... those certainly requires some understanding of hard and software.