Well I’m Iranian and I live in Iran so let me tell you the difference.
About 80 or so years ago the name of my country was Persia, so the people were called Persians. But the problem was that Persia, or in our own language which is Parsi (Farsi), is one of the main lands and ethnics. But there are many other lands and ethnics that together they cover the whole country like Turks, Kurds, Lurs, Gilaks, Talishies and other smaller ethnics. So it wasn’t suitable to name a country based on the biggest land/ethnics. The last Shah/King changed the name to Iran (the land of Aryans/because the ethics of all the people here goes back to aryans).
Now, people use it as these: if they are from the land of Pars, cities like Shiraz, Isfahan, Tehran or Mashhad and so on, they call themselves Persians. Because they are from the land of Pars/Persia. They are both Persian and Iranian. Persian because their land is called Persia and Iranian because the country is Iran. On the other hand, the others call themselves Iranians. They may be Iranian Turk, or Iranian Kurd, or Iranian Gilak. Just because other ethnics of Iran aren’t well-known for other countries, they just say their Iranians.
I myself am a mix of Ukrainian and Gilak. So I’m not Persian. I’m Iranian. Cause I was born and live in Iran. My mother’s Gilak, and my father’s Ukrainian.
Ask any question you have. I’d love to help if I can.