Redstone circuits require a *lot* of calculations, as do flowing water and lava when it is changing the path if its flow. Those are the two things most often responsible for lag in Minecraft. If you have constantly-changing flows and many redstone circuits, that will bring the world to its knees.

Hoppers are the unknown element here. They're so new that their performance behaviour and code is not well known, so there's very little received wisdom about them. However, being a new feature, it's very likely that they're not efficiently programmed yet – having thousands of them might be significantly contributing to lag. If you reduce or eliminate excess moving fluids and redstone circuits and still have significant lag, this is where I'd look.