Mix garlic, saffron, ginger, paprika, cumin, turmeric, the pulp of 2 preserved lemon, cilantro, parsley, salt, and pepper together. Rub chicken with mixture, cover, refrigerate and marinate 3 to 4 hours.
Heat oil in heavy skillet. Add chicken, and brown on all sides. Remove to platter. Add onions to skillet, and cook over medium-low heat about 15 minutes, until lightly browned. Transfer to tagine, if you are using one, or leave in skillet. Add cinnamon stick.
Put chicken on onions. Scatter with olives. Quarter the lemons, remove pulp and cut skin in strips. Scatter over chicken. Mix stock and lemon juice. Pour over chicken.
Cover tagine or skillet. Place over low heat, and cook about 30 minutes, until chicken is done. Scatter parsley on top, and serve.