So I got doing down the wrong path, but refused to admit it was total junk. So my solution involves a few hardcodes and isn't dynamic (and is indeed junk).
EDIT: I refused to give up. I finally found a way to solve it going down the wrong path.
No need to reinvent the wheel, so I implemented the circle algorithm for scheduling round robin tournaments (see Wikipedia).
Should work on any even number of participants. For uneven numbers, a dummy can be added to the input to make it even.
Comparing the results I get the same pairings, just in a different weekly order, success!
Used iterative macro to solve this challenge. Need to update maximum number of iteration manually when number of records changes. So that iteration stops once each people played each other people. Example, iteration would be 5 for 6 people, it would be 7 for 8 people. it is kind of manual. I could not make it dynamic. However, made the pairing/partnering fully dynamic.