In the many cases of software development like this, double work is a better opportunity. Reasons there for:
If you try to avoid double work, you have to spend significant time to collect the requirements and to coordinate the work. You don’t reduce the time you need to develop a working software solution. Let me illustrate that, if you speak every week with 8 people for 1,5h for four weeks, then you have spend 60h of working time plus one week for software development, makes total 100h. If two developers build two solution, you spend only two weeks, total 80h. One additional reason, too much and too less communication frustrates developers easily.
If you develop two proper working solutions, you can decide for better solution. This means, if you has developed only one solution, your chance is 50% to have the worst solution. If you select one solution from two, you chance is 100% to have not the worst solution.
My advise is in the first develop round, every team are allowed to develop his own solution. This mean share nothing. In the next round, the development teams can decide to switch to one solution, to the better one or to decide to develop an better third solution with the experiences of booth early versions.