After banging my head against the wall for about 2 hours, I finally figured this one out. Guess it might be useful to share it, in case someone comes across the same problem.
The problem started because I had a model, and I decided to total the volume of concrete using the "CIP Takeoff" report. Which totalled, say, 5000 m3. Then I took a custom report I had made, and totalled. My report in particular gives me the breakdown element by element in Excel (helps me check I didn't inadvertently mess up an element during editing operations). I took it, totalled... and got 5012 m3.
Same building, same computer, two different results. 12 m3 in 5000 m3 is not significant, but still, it drove me nuts why I was getting two different results.
Turns out the problem is the number of decimal places. Tekla by default recommends 2 decimal places when you're building reports. So all the quantities on my report were rounded to 2 decimal places. My report has no total at the end (still can't figure out how to make the totals work), so the total sum is done in Excel.
"CIP Takeoff" does have a total sum in the report. And that total sum is calculated without rounding off. It's not until the very end when the number is rounded off for display.
Each of the volumes on my report had a roundoff difference of a small fraction of a m3. And because of the way I modelled (columns separated from walls, separate columns for each level), I had a ton of elements. So that small roundoff fraction, multiplied by tons of elements, is what was giving me my difference in volumes.
I took my report, set everything to 5 decimal places, and tried again. A perfect match with CIP takeoff.
So, watch those roundoffs when you're creating custom reports. Depending on how you build your model, they might generate noticeable differences in volumes, areas, etc.