A BC107 was an old ordinary little transistor in a metal case.
Its max Vceo is 45V, its max current is only 100mA and its hFE is from 125 to 500 at 2mA.
A BC547 has the same chip but in a modern epoxy case and its allowed thermal power is double the BC107.
I have used 2N3904 little transistors to replace BC547 in circuits for many years. Its pins are in a different order than the European transistors.
It's just a bog standard small NPN silicon transistor, pretty well anything will take it's place - and likewise I've used BC107's for years to replace any other small NPN transistor.
I think the BC54x transistors are selected by tests after manufacturing:
BC547= higher voltage
BC549= low noise
BC550= higher voltage and low noise.
BC548= not high voltage and not low noise
They were all selected for current gain where A was low gain, B was medium gain and C was high gain. But today only some gain numbers are available.
In the early silicon transistor days, manufacturers would start with a generic transistor "recipe".
But they would test the generic transistor lot and separate those which had the better performance.
They would assign a different part number and sell them for a premium.
This substitution is dead simple, as the 2N3904 only has to be rotated 180° to fit where a BC547 fits.
2N3904 = EBC, BC547 = CBE.
Transistors such as C1815=ECB, are a little trickier when the leads are inline. If you want to sub one of these pinouts for a EBC/CBE, a short clipping of wire insulation, slid up either the C or B lead, will prevent shorting when the leads are twisted to fit.
Triangular mounting is the easiest to fit any suitable substitution.