The only way it can throw an StackOverFlow is when your Team's League is accessed recursively....
Team to League to Team to League
I'm guessing there's some function trying to convert your objects into some other representation reflectively or recursively resulting in an infinite loop.