I'm sorry for responding to a relatively old post, but I have the answer!
This behavior happens when the mod is installed (or working) only on the client side, but not on the server. What is happening is your client shows you the crafting recipe (GUIs are client-only), but when you click on it, the server says "Hey! That block doesn't exist, undo what you just did!" (the server handles your inventory).
To solve this problem, you need to put another copy of the mod in the server's mod folder and also make sure that the files in the server's config folder are identical to those in your client's config folder (easiest thing to do is just delete the config in the server and copy-paste the config files from your single-player game).
In case you're new to the terminology, the client is the Minecraft game (which you used to join the server) and the server is the text-based thing that you launch with the Forge server jar.