Two problems:
1. Switching is a large-signal process, so small-signal parameters (h_fe, f_T, etc.) aren't very meaningful. It's not that they're inapplicable, more that it's a hand-waving relationship; large-signal parameters can be measured in a similar way, but a more robust method must be employed to describe the nonlinear response. (Which isn't ever done with general purpose transistors, but is sometimes provided for RF power transistors -- the data are used in simulators that do harmonic balance and load pull calculations.)
2. Switching is a wideband signal, and presumably you want it to look like it's switching, not just a pile of mush. So, you'll typically be below f_T / 10 say.
Or put another way, expect the edge rate to be comparable to f_T, or a modest fraction of it (so, 1/3rd or ~100MHz or 10ns, for example), so whatever flat top/bottom you want inbetween needs to be as many times longer than that.
And that's still pretty respectable, getting say 30MHz from a BC547. It won't look very sharp up there, but it can do it. Don't be stingy with the bias current, expect to need a good 10-30mA (and 0.5-3mA on whatever's driving the base) to do it.
I've ran 2N3904s (basically the same thing, but 200mA) and 2N4401s (600mA) about as fast, and at about as much bias; I haven't done BC547 specifically, but it should be in that range as well.
Tim