Shields logically shouldn't hit something under the ground unless said shield was buried and tall enough to hit airborne/ground/burrowed. Let's take a moment away from the logical side of this, because I don't think even an elemental would be carrying a shield so large,
It's not that the shield is so large it blocks all possible areas it's that an airborne creature must come down to attack something on the ground just as a burrowed creature has to come up and an immaterial creature must rematerialize
This shouldn't affect immortals and burrowed creatures because it's a creature. Shields affect immortals and burrowed creatures not because the shield is targeting the creature but because the creature is hitting the shield when targeting the player.
This is a creature that finds a target (a random target but a target none the less) and since immortals and burrowed creatures can't be targeted it shouldn't be able to delay them.
Edit: I think stacking wouldn't be a bad thing since it's just one turn but to make that clear I'd reword it to say "Every time this creature attacks, a random enemy creature is delayed an
extra turn." Right now it states 1 turn making it work like other delay cards which do not stack but replace existing delay (ex: using Basilisk Blood on an already delayed creature resets the delay to 6 turns it doesn't give 6 additional turns of delay). Delay cards are probably coded as something like set delay = x, where you would want this to be set delay = delay + 1