Bulbapedia currently claims that transform copies catch rate for all generations before 5, but someone on Bulbapedia claims that at least it doesn't work for Generation 1. Can someone either test this (for each generation, of course) or transcribe stuff from a more reliable source? Please don't question my curiosity.

I could probably test Gen 2 for you... But how exactly do you test this? A raw unmodified catch rate for a Pokemon isn't something laid out for you like a stat, it's in the games code, so any results I get won't be 100% certain.

The easiest way is to have two Pokemon: one easier to catch than Ditto, and one harder to catch than Ditto. When testing the easier one, set it up so that the catch chance would be certain if and only if transform did copy catch rate. If the Ditto ever breaks out, then transform doesn't copy catch rate. For the harder one, set it up so the catch chance would be certain if and only if transform didn't copy catch rate. If the Ditto ever breaks out, then transform does copy catch rate.

well @squaaaaaaaw @sumwun can't beat a good ol' randomized controlled trial to prove causation, this is why they teach science in school people, so when a problem like this comes up we can apply the scientific method on it, in a proper fashion.
get data collecting, we got a scientific article to write guys.

My tests for Gen 4 were nearly identical to LeafGreen, except that I used a Shinx (which has the same catch rate as Rattata) and pokeballs. Once again, at 1% HP, Shinx has a 100% capture rate, but Ditto now only has a 14.3% chance, due to the weaker ball. Nonetheless, I was still able to catch 5 in a row, so we can conclude that transform in Gen 4 (almost definitely) copies catch rate.

The G2 test has a few complications because the formula that Game Freak themselves programmed into those games is quite buggy. Specifically, the only way you can ever have a scenario with a 100% catch rate (other than the Master Ball, of course) is if the opponent is asleep or frozen (no other status does anything to help the odds at all), and no higher than 5% health. And yet, if you do obtain those conditions, Magikarp or anything else with a 255 base catch rate will be completely incapable of breaking out of any ball, except the Heavy Ball.

Meanwhile, a Ditto in that same situation would find itself less than 20% to be caught, so provided everything's in place to set it up, those chances are quite favorable to test.

As it turns out...
So in those games, as opposed to later generations, it must still be using its innate Ditto catch rate, and not copying Magikarp's when it copies everything else including the extra species byte.