OK so, this is a little bit embarrassing but apparently the program doesn't play well with an entry point...
At the bottom of my code I had this:
[<EntryPoint>]
let main args =
0
Which I just removed...
I didn't think it mattered much since the program executed the code above the entry point anyway
But apparently it was was enough to mess up the whole thing!
Sorry for the inconvenience, though it might be a good thing to leave this here for future reference