I recently faced the same problems when importing/adapting a midi file in the Kronos myself for the first time. Here's what I did, it takes some time and effort, it worked for me, but I'm not sure if this is the shortest possible approach. I am actually hoping someone else has an easier way of doing this, but anyway here it goes...
[Edit: in the mean time I saw Saxifraga's solution which is a LOT quicker. Thanx

! Note though that if you want to replace the standard GM programs with better sounding Kronos programs, thereby turning the midi file into a Kronos song, then I think there's still value in the steps listed below.]
First of all, like you did, I also noted that when play back again from measure 1, the programs of each track are reset to different programs. This is because apart from the recorded note events in the midi file, there are "program change events" in each track, which change the program used by that track. So whichever program you've selected for a track will typically be changed into the program that is set by the recorded program change event.
(1) I don't have my Kronos at hand, but in the Sequencer you can see these program change events by going to the Track Edit tab and then in the upper right menu selecting "Midi event edit" or something like that. First a dialog box appears in which you can select some options. For now, uncheck all checkboxes except for the one with "program change event" or something like that. Then press OK.
(2) Now you should see all the program change events for that track. Usually there is one at the beginning, e.g. in measure 1 or 2. For simplicity, I am assuming that there is only one such event in every track. There could be more, but this makes things a bit more complicated. I am coming back to that later.
(3) Write down the program number that is part of the program change event, on a piece of paper"
(4) Then delete the program change event by pressing "Cut" and then exit the midi event editor. This means that for this track, no program changes will appear anymore in playback, and you can instead use the Track program on the main tab to specify which program you want to use.
There´s a problem with the program change event: it uses Bank I-A (I think), however to produce the correct sound it should have used Bank GM (in which all GM programs are stored). THIS is the reason why the sounds are played back incorrectly after importing a midi file. The program numbers are correct, but the bank number is incorrect. The midi file intends to use the GM bank, but the Kronos does not use the GM bank. However this is easily fixed:
(5) You now take the program number written down in step (3) and look it up in the GM program bank (if you don't want to leave the Sequencer, you can change the track program by selecting the tracks program bank on the main Play tab). Now you have found the kind of sound that was intended for this track in the midi file. So there's no guesswork anymore. You can really look it up.
(6) At this point you have a choice: use the GM program that the track was intended for, or select an alternative program (from another bank) which sounds better to you than the standard GM sound does. In either case, select that program as being the program for this track. Because you have removed the program change event in the midi event edit in step (4), the program you've selected will not be changed anymore.
(7) It seems like a lot of work, but you have to re-iterate steps (1)-(6) for all tracks that contain note data in the midifile. What I did is to mute all tracks that have not been processed this way yet. So I regularly play back to see if the tracks that I have processed so far are sounding acceptable to me.
(8 ) Obviously: don't forget to do a Save Seq. You should store all this work as a Kronos Song before turning off the Kronos.
Other tips:
(a) While processing all relevant tracks, start with the Drum track. This usually is track 10. Then at least you have some rhythmic context when iterating over all remaining tracks. Instead of choosing a non-GM drumkit program, I would choose for a GM kit here, because it is transposed differently from the other Kronos drumkits. Of course you could choose to change the pitch of the drumtrack instead and use a non-GM drumkit.
(b) In the case that there is more than 1 program change event in a particular track, I chose still to delete the first event (and use the Track program selection instead, to keep things informative in the main Play tab), but subsequent events I altered using the midi event editor. I looked the program number up in the GM bank (like we did in step (5)), and selected a program of liking. I believe you can select a bank as well in the midi event editor, so that should not be a problem.
[Edit, in addition:] (c) By default the imported midi file will not use any insert effects. If you've used the above steps to replace the GM sounds with better sounding Kronos sounds and turning the midi file in a full Kronos song, it's a good idea of also copying the appropriate Effects into the song. You can do this on a track-by-track basis, e.g. for some of the tracks. I believe it's in the upper right menu of the Play tab. Select the program you want to copy the effects from. Be sure to check only "All-Used".
Well, this is my 2 cents

. I do hope that someone has a much briefer approach for importing and adapting midi files in the Kronos, but until then, this is the way I do it. Good luck!