The main problem is with the declaration of mon_export. It needs to include the type of the class it is declared in.
uvm_analysis_imp_mon#(transaction#(LENGTH),model#(LENGTH)) analysis_port;
Other problems are
- classes extended from uvm_component/uvm_monitor must not specify a parameter in their extension
- function declaration in this example need to be declared as function void to match their virtual method prototypes. Without the ‘void’ the default return type is 1-bit logic.