>> Just curious, what data does a midi file store other than Time,Note,Duration and Velocity?
A lot more than that - any Midi data under the midi protocol is stored provided that the program used to program the song is able to handle it.
>> Why when the same midi file played by diffirent player software will have different quality/effect (ie. some sounds nicer but some not)?
Quality of the sound depends on the synth playing the data.
Eg free Microsoft GS synth sitting in Windows will sound worse than a $2k Roland Fantom XR.
Also certain subsets of Midi eg XG Midi (from Yamaha) sounds better in XG approved synths.
Any cc messages. Examples - pitch bend, mod wheels, expression, portamento, after-touch, breath-controller, program change, timing clock, midi time code, start, stop, continue, song select etc etc. Many of them unassigned and you can assign them.