I found my issue, so I will share it here in case anyone has a similar issue.
Long story short, if you plan to dynamically populate a list of lists, I recommend not doing that. When you add a list to another list, the list that is added is referenced by its object location, not by its static values. Meaning that if that child list that is added changes, your parent list will change.
For example in my scenario we had:
Loop N times
clear tempList
#Populate tempList
Add randStr1 to tempList
add randStr2 to tempList
add randStr3 to tempList
#add tempList to a parent list (a nested list)
add tempList to parentNestedList
The problem with the above code is that the values of tempList are not added to parentNestedList. Instead, a memory location that points to tempList is added to parentList. So, when I clear tempList and populate it with new data, ALL of the data in parentNestedList still points to the current value of tempList. So, if i looped 3 times through the code, by the end of it parentNestedList would be populated with 3 references to tempList and tempList would only contain the most recently added data.
If I had two separate child lists, list1 and list2, that were both added to a parent list, list3, then list3 would contain references to two separate lists, the first would point to list1 and the second would point to list2. The method that I was using above only had one reference list, tempList, which was being modified and therefore my parentList was not displaying in the way in which I had intended.
Hope this helps