Magic should be treated as just another variable (as an example: magic would modify the agricultural output by 20% through any means someone can think of, like making it rain, or fertilizing the land). Nothing fancy really. But I agree that it would be much easier to focus on a human-only world.
I would first treat regions individually, as a closed economy, no exterior trade. After we work things out like this, we can think of "opening" the region to the outside world, with trade, population movement, etc... Because these relations can also simply be simulated through static modifiers in the first stage. Then the modifiers themselves can be subjected to mathematical modelling including the whole nation/world.
As an example for emigration: If the population number of a province surpasses 90% (or any other number) of its human support factor (as in how many people can the province support if all potential resources are optimally used) people will start to consider leaving their homes. You could call it overcrowding effect.
Regarding trade: Trade should be simulated by modeling supply and demand through simple factors, much like everything else. Every bigger settlement should have a base supply (anything produced in a small enough radius will be included). Every 1000 persons of each class should have a base demand, the percentage of classes in each settlement will determine the settlements' base demand. The amount of trade between 2 settlements could then be calculated as a function of profit and travel (anything from distance to travel method: the longer the distance, the higher the travel expenses, longer time wasted on the road, is there a road, is it paved, is there a means to use the ship or even train, etc...). It shouldn't be too problematic this way.
Just some thoughts