I am aware of 3 different customs of when to say An'im Zemirot on Shabbat:
- Beginning of Shacharit, Between Bircot Hashachar and Psukei D'Zimrah
- After Chazarat Hashat"z of Shacaharit
- End of Musaph after Aleinu
Is there a reason behind each of these 3 customs? Why the "debate"?