Yes It will not work, as you take only the .Value2 from your initial Range, you need also the format. Because if not, the format of your destination range will be concidered.
I think you can do like :
Range initial_Range = initial_worksheet.get_Range(...);
Range destination_Range = destination_worksheet.get_Range(...);
destination_Range = initial_Range;
to have all : numberFormat, backgroundColor ... of your initial range in the new one,
Or by using something like:
destination_Range.Value2 = initial_Range.Value2;
destination_Range.Font.ColorIndex = initial_Range.Font.ColorIndex;
destination_Range.Interior.ColorIndex = initial_Range.Interior.ColorIndex;
destination_Range.Interior.Pattern = initial_Range.Interior.Pattern;
destination_Range.NumberFormat = initial_Range.NumberFormat;
to have only what you need, you can choose for example to instantiate NumberFormat and not background ...
(you can loop Cells in your destination and initial Range if this doesn't work for total range at once)