I'm new here, so go easy on me!

I need some help/advice from anyone who has gotten their hands dirty with the Z80 assembly source code for BBCBASIC. I'm basically looking to replace the floating-point math routines with calls to my custom-built FPGA FPU in my DIY computer. I've made a multiplier and have tried replacing the FMUL routine in fpp.z80, but the results I'm getting back in BBCBASIC are all 2x what they should be and I can't work out why.
This is a very niche/technical question, I know, but I'm hoping someone out there might have a better understanding of how all the FP routines fit together in BBCBASIC and can give me a clue as to where I'm going wrong.
I've attached my current fpp.z80 module that I've modified. Lines 424-520 are where I've replaced the BBCBASIC fp multiplier with an interface to my hardware FPU.
Any help or thoughts would be appreciated!