Goblin fortresses have very crappy architecture (sorry Toady). This causes pathing issues even with relatively small number of units. Additionally if your character is slow, the calculations for every one of these critters is taken multiple times before you can make your move. Having fast character helps move from such locations to somewhere else if you stumbled on them by accident, but there always will be issues with goblin fortresses.
If you have dfhack, you can use reveal to look underground. Or this simple script to count critters, to see if their number is crazy or not:
local active_units,dead_units=0,0
for k,v in ipairs(df.global.world.units.active) do
if not v.flags2.killed then active_units=active_units+1 else dead_units=dead_units+1 end
end
print(string.format("Active units=%s, dead=%s",active_units,dead_units))
Name it for example "count-critters.lua", put in /scripts directory and run from dfhack's console.
You can run it when you observe a change in performance, you can be surprised how aggresively the game removes units - or creates new ones. And then avoid such places. Next time generate more underpopulated civilisations - and conquer goblins with a vampire and/or necromancer (they don't tire and can sprint all the time, this helps much with performance in such places, plus you can jump over trenches).