Spawners will stop spawning if there are too many of the spawned mob within 17 blocks. You should drop the floor 2 blocks, get the room to be 7x7, and make sure the mobs can't spawn on the spawner. No point in lighting caves with spawner based traps.
If no one has stated this yet, an easy fix without hurting it TOO much aesthetically is dig down a couple blocks, so as to keep the animals in a more or less hole. This might be not what you're looking for at all, or not a fix, but it's what I result in doing whenever my animals are phasing through fences. I think just digging down one blog works as well, not positive.
0
0
0
0
0
0
0
0
0
0
0
0
0
0
I did this a few times and the animals suffocate.
0