Wind energy is a rapidly expanding source of renewable energy, but wind resources are highly intermittent. This makes increasing the level of wind energy penetration in an overall energy portfolio challenging if power quality and grid frequency is to be maintained. In a conventional power system, grid frequency regulation is typically achieved by means of some form of active power control (APC) of power generation plants. Active power control of plant power output aims to maintain the power balance between generation and consumption. Wind turbines have historically not participated in the active power control and are therefore isolated from the grid using sophisticated power electronics, increasing the cost of wind energy. Interest in studying APC of wind turbines for grid frequency regulation has been revived recently. Most of the proposed approaches work either at a single turbine, or overlook the effect of APC strategies on actuator usage and mechanical loading of the system. However, wind energy based power generation plants have an array of wind turbines which interact with each other aerodynamically in a complicated manner. In this work we introduce a new hierarchical APC strategy in which a farm level controller fairly distributes the task of regulation to all the wind turbines in a farm accounting for dynamic wake effects introduced due to control actions of each of those wind turbines. An individual model predictive controller at each wind turbine then tracks the power references passed on by farm level controller, subject to mechanical loading constraints. The results from this approach are compared with the greedy approach when the individual wind turbines only optimize their own power production without any regard of neighbors downstream. We then extend the idea of this hierarchical control to propose co-optimization of wind farms and battery energy storage for regulation, and simultaneous wind farm layout and control design to exploit the synergy between layout design and wind farm control.