Achieving a perfect score(All teams playing all sports with no repetitions in the match-ups) isn't possible using the parameters you have.
Tl;dr You are filling in a grid of size $(n/2)^2.$, but each team only has $n-1$ possible competitors since teams can't play themselves. You could solve this problem by taking out one of the periods,
adding an extra sport, creating an additional team, or divideing the campers up into an even number of teams.
To show why, let's imagine that there are only 4 teams(A through D), 2 periods, and 2 sports. Start to fill in that graph.
As you can see, I have filled in the first column.
Unfortunately, there are only two spots left in row 2, so A and B must both go there if all teams are to play all sports.Similarly, C and D must go in row 1.
On a 3 by 3 grid however, this problem is solvable.
Since this solved grid is 1/4 of the grid you are trying to solve, let's try using it to make your grid work.
I have shown above a second solved board made by shifting all of the letters in the first grid down 6 letters(e.g. A=G, B=H...). This is half the schedule.
But now if you try you try to fill in the second half of the schedule, you return to the problem faced in the 2 by 2 example. A through F cannot be used in rows 1 to 3, and G through L
cannot be used in rows 4 to 6. That being said, we must rearrange team A through F to compete in rows 4 through 6, and rearrange team G through L to compete in rows 1 through 3.
Here I have filled in the grid with the minimum number of repetions(6), and I have chosen to repeat the first columns match-ups in the last row so that the maximum amount of times
goes in-between repetitions. As You can see, cutting out the last period would solve the problem entirely, as would removing any of the sports. Alternately, you could divide the kids up into an odd number of teams.