Ah, I see the problem. See how the output numerator df in GPower is different too? That's because you entered "4" for the "number of measurements" on the input side, which isn't correct for your design. My long-atrophied anova neurons are waking up now too. Think of it this way, in any within-manipulated variable with two levels, if you collapse each participant's data to a difference score between the two levels then run a one-sample t-test on the difference score, that will yield the same result as if you did a paired t-test which in turn will yield the same result as a repeated-measures anova (where the F in the latter will be the t of the former squared). So the numerator df will be 1 in all three (you usually don't even see the numerator df in a t-test, but it's there). If you have two two-level within variables, then a test of the interaction reflects a double-difference; that is, if you have variables A & B with levels A1/A2 and B1/B2, respectively, you can compute the double-difference ( A1_B1 - A2_B1 ) - ( A1_B2 - A2_B2 ) in each participant to get a set of double-difference scores that you can submit to a one-sample t-test, and that will give you the same result as doing a 2x2 repeated-measures anova and looking at the row for the interaction. So again, the numerator df should be 1. Finally, if you have a third variable that's between-Ss, then the three-way interaction is like doing a two-sample t-test on the double-differences, so still a numerator df of 1.
Now, with respect to the denominator df, I'm still pretty hazy on how to get from your stated 205 participants to the 199 shown in the tables; are you sure there are truly 205 there? Run:
length(unique(BOCdata$ID)) to check.
If there truly are 205, then I would have expected the denominator df to be (N_group1 + N_group2)-2 = 203 for all the effects, so maybe each difference score implies subtraction of two degrees of freedom? But that doesn't feel right (esp. for the main effects). So I'm guessing that you really only have 201 participants?