It appears that on some maps, the "what level the cursor wants to stick to" and the "what level is being drawn" are off by one, as mentioned in the other answer. e.g. the movement cursor is sticking to level 2 but the game is drawing level 3 (the roof).
There are two methods to get around this in these cases:
Say you have a soldier that you are trying to place onto a tile at level 2:
1 - put the "cursor level" too low, at level 1, so that the "visibility level" is correct, at level 2, and then rotate the map with Q and E such that no tiles at level 1 are lined up behind the tile on level 2 you wish to move to. With no level 1 tile to prioritize, the cursor will stick to level 2. I have never encountered (so far) a map where I was unable to find an appropriate angle, but it is a pain.
2 - put the "cursor level" correctly, at level 2, so that the "visibility level" is too high, at level 3 (the roof), and the blindly click through the roof. On some maps, this is actually easier than the first option. You can put the cursor level at 1, where you can see level 2, place the mouse over the tile you wish to move to eventually, go up a level with the scroll wheel, which will make the cursor stick to the correct level but draw the roof on top, and just eyeball-double-check that the 3-D cursor box outline appears where you think it should, and click.