I think now there is enough info to give an answer, although I will still be guessing in some points.
First, I would like to say that I agree with 3DDave that faces of the flanges are better primary datum features here, because they will do much better job in orienting these parts in assembly than the short cylinders. (By the way, very nice real-life example with a paper card and a pencil).
If this application is what I think it is (I have some level of confidence, because I work with very similar stuff on daily basis), the fit between secondary datum features, while interference after the parts have been assembled, won't probably be interference during assembly operation - in order to assemble the parts together, either the central piece will be cooled down, or the left and the right pieces will be heated up. So again, this means that flat faces of the flanges will be orienting the parts in assembly, and short cylinders in the central piece are probably "just" for locating all pieces radially.
Furthermore, I have some doubts about referencing datum feature S at MMC/MMB in positional callouts for considered holes. In general, referencing datum features at MMC/MMB means that potentially (when the datum features have not been produced at their MMCs/MMBs) parts can shift in assembly relative to each other. In this case, when a bolt goes through all 3 holes after the parts have been assembled, there is no possibility that the parts will shift radially relative to each other during insertion of the bolt, thus referencing S at RFS/RMB (no modifier) is better choice, in my opinion.
And getting to the point of the discussion... The fact that flat faces are used as primary datum features in the positional callouts for holes complicates tolerance analysis a lot. If one wants to include absolutely every factor that may have any influence on simultaneous ability of holes to accept a floating fastener, trigonometry must be used. It is because the parallelism tolerance between both faces of the central part has to be taken into account (the possible maximum parallelism error, even though it is only .002, makes datum reference frame for position of holes in the right piece not aligned in terms of orientation with datum reference frames for position of holes in the left and in the central part).
As a workaround, I would recommend doing 2 separate tolerance stacks (the number of stacks could be reduced to 1, if size limits of all holes were identical, and all the positional tolerance values were the same):
- Stack I - between the left part (#1) and the central part (#2). Because both components have common mating face, and they are radially located relative to common datum axis (due to the interference fit), datum reference frames for position of holes in these 2 parts are locationally and orientationally aligned. Using simple floating fastener formula, T1+T2=H1+H2-2F or better yet the inequality H1+H2-2F-T1-T2>=0, will give you an idea whether a bolt of max diameter F can pass through the holes of certain size that are located within certain position tolerances.
- Stack II - between the left part (#1) and the right part (#3). Because there is no common mating face between the components, and they are radially located by different features in the central part, datum reference frames for position of holes in piece (#1) and piece (#3) are not locationally and orientationally aligned. The inequality H1+H2-2F-T1-T2>=0, which for parts #1 and #3 would be H1+H3-2F-T1-T3>=0, has to be modified by including a factor coming from the circular runout tolerance (CR) and from a safety margin (SM) reflecting the fact that the parallelism tolerance has not been considered in the stack. So the inequality becomes: H1+H3-2F-T1-T3-CR>=SM, where SM is a number greater than 0.
I am not 100% sure, but to me a separate stack between the central part (#2) and the right part (#3) is not needed - if bolt of max diameter F passes through parts (#1) and (#2) AND through parts (#1) and (#3), it will always pass through parts (#2) and (#3).