Fill a large saucepan with lightly salted water and bring to a rolling boil over high heat. Stir in the linguine and return to a boil. Cook uncovered stirring occasionally until the pasta has cooked through but is still firm to the bite; about 11 minutes. Drain.
Meanwhile, melt the 2 tablespoons butter in a large saucepan over medium-high heat. Stir in the onions, garlic, mushrooms and broccoli then cook and stir for 5 minutes.
Pour in the chicken stock then cover and simmer until broccoli is just tender. Stir in the chicken and cook until chicken is no longer pink in the centre; about 5 minutes.
While the chicken is cooking melt the butter in a saucepan over medium-low heat. Whisk in the flour then stir until the mixture becomes paste-like and light golden brown; about 5 minutes.
Add the butter-flour mixture to the chicken mixture stirring constantly with a fork to prevent lumps. Pour in the milk stirring constantly until smooth. Reduce heat to medium; simmer for 5 minutes more.
Stir in the cheese then reduce heat to low and continue stirring until cheese is melted. Stir in the linguine. Season to taste with salt and pepper.