Did you by any change assign something to
SynEdit.Font.Onchang :=
?
SynEdit get font from TControl, and due to limitations, SynEdit must have that event itself. Otherwise it wont work. (Or you must call SynEdit.FontChanged(SynEdit.Font); / but that is protected, so you would need a class helper...)
IIRC there is already a reported issue, but not sure...
Otherwise it should work. You either need to only assign the entire font OR the properties of interest. Doing both (as you do) is fine, but not needed.