In American English, calling the mid-day meal dinner is something usually reserved for older generations. The mid-day meal for most Americans is lunch and everyone understands that lunch means the mid-day meal.
Dinner and supper are usually interchangeable and mean the evening meal. Again, for the older generations there is some distinction.
Overall, if one translates obiad as lunch and dinner/supper as kolacja, itwould save a lot of confusion. Obiad translated as lunch/dinner is definitely a not often used translation.
I (BrE) generally use the same terms as you, but meal times in Poland differ somewhat. When not bound by "anglo-saxon" office timetables, Poles often eat their main meal ("obiad") sometime in the afternoon (see the comment below) and at lunchtime, restaurants often advertise "lunchy", rather than "obiady".
In the evening I think people in Poland usually eat something lighter ("kolacja"), which to my mind fits better with supper.
In the UK, the main meal is "dinner", whether you have it during the day (generally working class) or in the evening (generally middle class). So I've got used to referring to "obiad" as dinner, and "kolacja" as supper, or simply as the evening meal.
None of this ^ really holds for me...: Breakfast = śniadanie
Lunch = drugie śniadanie (Around noonish?)
Dinner = obiad (Traditionally around 13-15? At polish resorts. But is really the after school/work meal.)
Supper = kolacja (Anywhere between 18-24:00 really, usually the last meal of the day.. and by older standards probably around 6-7 so that you don't "eat before bed" XD) Period. Koniec kropka. :P
You have to remember that traditionally Polish people would get up SUPER early, and breakfast was very early like 7 for example and lunch/drugie śniadanie would probably be 10ish? Work and school in Poland start and stop early by 1-3 usually.., so dinner/obiad would be then. And supper/kolacja would end up being relatively early as well due to earlier bed times.., this has probably moved to later in recent times, but has been pretty much universal no matter where in Poland I've been.., and also here in Canada.. Więc ja nie wiem o czym wy i Duolingo nawet gadacie :P
I'm sorry, but American "dinner" is NEVER between 13:00-15:00! People would look at you funny if you said that. That's lunch! It seems that Poland has 4 meals if you include drugie śniadanie, but the U.S. has only 3. Dinner/supper is usually interchangeable, or if supper is the later meal, then Americans don't eat both dinner & supper. They eat breakfast, lunch, and dinner OR supper.
The other confusion is that obiad is lunch in other Slavic languages:
CZ:oběd, SK:obed, RU:obied, UA:obid, BY:abied, BG:obiad
American dialects are not as consistent as you seem to think on this point:
I eat dinner-supper at 4pm, and lunch at 11am. However, people normally eat lunch around noon and dinner around 6pm where I live. Breakfast would be anywhere from 6am to 7am depending on what time they had to leave for work. I've actually gotten up at 4:30am and got to the coffee shop by 5:30am and ate breakfast at that time. Sometimes I'd eat lunch at 10:45am, a snack a little later around 1:30pm, then dinner at 4:30pm, when I got home from working on duolingo all day at the coffee shop. lol
That makes sense when one wakes up at 4 a.m. Then dinner/supper is obviously early, but then so is bedtime, if one wants a healthy eight hours of sleep.
We from the Ukraine always imagined that Poles were more Westernized and metropolitan and that Ukrainians were the farmers. But I guess the Polish early morning culture comes from a grand farming culture.
English (even American English, which I think is the reference dialect for Duolingo) is not regionally consistent about the names it uses for meals. The midday meal (obiad) is called either "lunch" or "dinner," while the evening meal (kolacja) can be either "dinner" or "supper."
(Obviously, though, a single English dialect will not use "dinner" for both "obiad" and "kolacja").
Furthermore, "lunch" exists in Polish as an English loanword meaning much the same as "obiad" (possibly more akin to the English "brunch"? This part is not entirely clear to me).
So, all of the translations you mention are in fact possible correct answers.
I'm from the UK, I refer to any meal around dinner time (midday) as Dinner and any meal in the evening as Tea, supper for me would be a snack before bed. There are no rules, mainly because it doesn't matter. It's not like the difference between a lion and a tiger, it's just food at different times of the day.
Easy solution for this is to refer to any meal as jedzenie.
Where I come from, we did call "lunch" dinner. On the farm, it was dinner of a large feast at noon. I didn't grow up on a farm, but my grandparents did, so they carried on the farm tradition of calling it "dinner" in the city. They passed now, so we now call it lunch and skip the large feast.