Either way generally works. The clock enable method is good because it only uses one true system clock(and you can use PLL outputs for other stuff), but the PLL -> Altclkcntrl solution tends to be easier.
For clarification, your original data rates were 2M-16M, which I took to mean a 16MHz clock or lower, but in this latest post you say 400M, which is a whole different ballgame. What's the fastest rate you'll have? Also, are all the clocks truly related, i.e. generated from the same source? Neither of these solutions work if, for example, the 8Mbit and 16Mbit data sources come from different clock sources, as they vary slightly over time, and that variance will add up. (Just like you can't feed data from one clock source to another clock source, even if they're listed as the same rate, because they won't be exactly, and your system needs to be able to add comma characters and/or let them slip.)