わかった

Authorityにロールを追加して、そのロールをPersonに追加したユーザーに設定してもダメな理由がわかった。
自動生成されたPersonControllerでsaveアクションの中で呼ばれるaddRoleメソッドを見たらこんなだった。

	private void addRoles(person) {
		for (String key in params.keySet()) {
			if (key.contains('ROLE') && 'on' == params.get(key)) {
				Authority.findByAuthority(key).addToPeople(person)
			}
		}
	}

要するにAuthorityに設定するロール名は「ROLE」という文字が入ってないとダメらしい。
それは知らんかったなー。もしかしてAcegiSecurityを使う上では常識?
あと、

後で気づいたのだが、plugins/acegi-0.5.1/grails-app/conf/DefaultSecurityConfig.groovy の中を覗いたら、ユーザー登録時のデフォルトロールは「ROLE_USER」に設定されていた。

	/** default user's role for user registration */
	defaultRole = 'ROLE_USER'

設定を変えないんだったらこのロールも追加しなければ。。。