Everything can be refitted to what the game says in the
depot.
There is another kind of refitting: at station, which is very comfortable, because it just instantly refits at station without any complications.
This at station refit however does not work on every combination (I don't think it is a bug, it was like this in the prior FIRS too).
I found the
Flatbed wagon to be the most useful in refitting. For example pig iron can turn into steel, and pig iron is refittable to steel. I think zinc, pig iron, steel, vehicle bodies, vehicle parts, pipe can be refitted to each other at station (I haven't fully tested all of these).
But for example vehicle bodies and parts turn into vehicles and engineering supplies, but they cannot be refitted to it at station.
For
Bulk wagon the only useful at station refit I found is coal to coke, BUT (for some reason) coke cannot be at station refitted back to coal.
For
Tank,
Piece goods and
Refrigerator wagons I haven't found any useful combinations where x can turn into y, and x is on station refittable to y.
You can test out what is refittable to what like this. For example refit the train in the depot to iron, and then order it to refit at station to slag, coal, etc. You can check at the capacity if it was successful or not.
Now about the depot refitting. Everything can be refitted to everything the game says, but for that you need to send the train into the depot. I used to think this to be very impractical (if you send 50 trains to the same depot that will not end well), but on the courtesy of AllTrainsAreBelongToUs, now I know it is actually possible to use it well.
What I was not aware of that there is an order "Go to nearest depot". With this we can specify multiple depots to do the refitting in instead of a single one. This way not all 50 trains will have to go to the same depot, causing traffic jams.
With this you can refit for example vehicle bodies to vehicles and engineering supplies, even though they are incompatible.
Order train to go to the station (it will load off vehicle bodies).
Order train to go to nearest depot, and refit there to vehicles.
Order train to go to the same station and it will load the vehicles. (If you want it to load both vehicles and engineering supplies, after refitting in the depot to vehicles, at station order it to refit to available cargo. It will refit to whatever it finds and is compatible. Engineering supplies is compatible with vehicles. Although if you use "refit to available cargo", then the first time you have to jumpstart it, because at the first time there is nothing at the station to load, it will not refit to anything. So in this case before the first time have 2 trucks load at the station, one for vehicles, and the other for engineering supplies.)
This way we successfully mimicked on station refitting with incompatible cargos.
At the other end of the line now you have vehicles/engineering supplies as cargo type, but you want to load vehicles bodies (which is not at station refittable).
Order the train to go to the waypoint.
Order train to go to nearest depot, and refit there to vehicles bodies.
Order the train to go to the station.