Yes, macros aren't functions, unfortunately. Thinking of them as such is a rather leaky abstraction.[1] If you post the code that's breaking, we should be able to help you. Is it a stock hn install, or have you edited it? The stock install has worked every time I've tried it.
[1] For example, this code won't work: (apply obj (list "steve" "steve's value"))
That's where in the compiler the error is raised, but there's no fnform there. Based on the error message, can you show us the definition of login-form in your codebase? Have you made any changes to it?