Efficient and correct freight train marshalling is vital for high quality carload freight transportations. During marshalling, it is desirable that cars are sorted according to their individual drop-off locations in the outbound freight trains. Furthermore, practical limitations such as non-uniform and limited track lengths and the arrival and departure times of trains need to be considered. This paper presents a novel optimisation method for freight marshalling scheduling under these circumstances. The method is based on an integer programming formulation that is solved using column generation and branch and price. The approach minimises the number of extra shunting operations that have to be performed, and is evaluated on real-world data from the Hallsberg marshalling yard in Sweden.