As Tom says, MAXRECURSION 0 does not belong here. The default value is 100, and I doubt that you have and organizational tree with more than 100 levels.
So remove that hint. SQL Server will tell you if you hit the limit.
If you do that, it could be because there are cycles in the data.
However, the full query seems dubious. Usually in a recursive query you start with a certain level and work in one direction. But you are starting on all levels but the top level and work upwards. I think your base query needs a condition so that it includes the people at the bottom, that is, those who are not anyone's manager.