I have three layers for mobs to spawn and have a relatively largish area lit up on the ground. The ground below it is at y = 67, and it is higher than y=111.
Even when I go about 25 blocks away from where the spawning cage is and wait there for multiple minutes, only one or two mobs spawn. I've checked, and the issue is that mobs aren't spawning, not that they're not moving. Any suggestions on how to fix it?
Firstly, Ilmango makes a very big mistake in his wording regarding skyblock worlds. The spawn rates for skyblock worlds are NOT higher than in a normal world, there's simply much more area outside of your farm in a normal world that allows spawn attempts to happen (and thus fail, because you properly spawnproofed anything that wasn't your farm). This is because the player is lazy and doesn't want to put in the work to optimize for spawn rates, so they opt to build way above the world surface such that none of the ground below them is within spawning distance. This is a great strategy for saving time and resources, but it absolutely kills your spawn rates.
1)remove ALL the blocks that were not used to build the actual farm from ALL the chunks that your farm physically resides in. You have to remove the entire chunk width, because the spawn algorithm can randomly choose any column in the chunk BUT it can only choose from those columns that have actual blocks in it (air is not a block, and bedrock I believe is specially coded for, but anything else counts even if the only result allowed for that attempt is failure.) You also want to remove blocks vertically from bedrock to world height, because just by being placed in the world they are reducing your chances of spawn attempts landing inside your farm. All that land you left in place thinking you could avoid spawnproofing it, it's still counting towards spawn chances within the spawnable area.
2)tear it down and rebuild at y=0ish (it's okay if you don't want to remove the bedrock or want to save some space for redstone/storage). Y level is used to calculate spawn frequency, so all other things being equal this down-low platform is going to get mobs faster than your up-high platform even though in both cases they'll be the only place that spawn attempts can happen (assuming you followed the advice from #1).
I'm not really up on the recent changes to spawning mechanics and I'm sure that DuhDerp's advice is great for people willing to put in a HUGE amount of work for the maximum spawn rates (and he neglects to add that you'd have to also spawn proof not only the surface but all the caves within 128 blocks) but for normal use I'm sure that a spawner like you've built is quite adequate.
However you still need to spawn proof everything within 128 blocks of your position, including caves, (what counts is where you, and any other players online, are, not the position of the spawner).
So if you go up to about Y=195 nothing will be able to spawn on or underground, however that design sounds like it might reguire you to be within 32 blocks so the mobs don't stop moving around? In which case you should either make sure you light up all the caves within 128 blocks or rebuild your spawner up at Y=200 or so (or go whole hog and follow DuhDerps advice and also light up the caves.)
Before you do any rebuilding you should probably check that spawning is working as it should.
Go up to y = 200 above your spawner when you are alone on the Realm, so that the only place in spawn range is your spawner, wait 5 minutes or so and go look in the spawner and see how many mobs there are.
When there are more people online you shouldn't expect too many spawns.