Check out UVM Cookbook/Scoreboards.
The uvm_analysis_fifo implements the write() function, which is required in order to connect to an analysis_port. You did the right thing in connecting your fifo to the scoreboard’s analysis_export and then connecting the monitor’s analysis_port to the scoreboard’s export. It sounds like you didn’t use the analysis_fifo but instead created something of your own that didn’t have a write() method. That’s just a guess.
If following the guidelines in the Cookbook page don’t work, please let us know.
Good luck,
Tom