The full email address is the username, so gary@quollwriter.com. The server is "www.quollwriter.com". I don't want my users to have to try and dream up usernames. Since I'm using the email address I have to escape it, at least I did have to in 4.0.4.
That's an usual setup You usually want your XMPP domain to be "quollwriter.com", so that users are reachable via e.g. "gary@quollwriter.com", and their username would be e.g. "gary". Usually XMPP clients just ask for the users JID and the password. So if a user enters "gary@quollwriter.com" and "mypassword", the client would extract the localpart, lookup the XMPP service for "quollwriter.com" and login with the extracted localpart as username and password.
If you escape the email address which you use as "username" for login by means of xep-106, then it will become e.g. "gary\40@quollwriter.com", so this has to be username in the openfire database and not "gary@quollwriter.com". I assume you are aware of that. While I don't see any reason why e.g. the backslash should cause any problems, you could try creating a test user with a simple username like "testuser" and see if it works.