You need to do two things here:
Being is an action applying to one visible thing.
Understand "Be [any thing]" as being.
Note “visible” and “any thing.” “Visible” is actually anything the player can refer to, as opposed to “touchable.” (See 12.17 of the documentation.) The “[any thing]” token lets the player refer to any thing, not just things that are in scope. (See section 16.7 of the documentation.) Put these two things together, and now the player can type “Be x” to refer to x no matter where it is – whether the player can see it or not!
The use of “visible” here is super confusing and unfortunate, but the thing to keep in mind is that “visible” is actually much more permissive than the default; “visible” is anything the player can talk about, and in combination with “[any thing]” or “[any person]” often means things that aren’t, well, visible.
I don’t understand the former self object very well, but I think you can get rid of this by saying “The player is Defense Solicitor” (or whoever the player is at the start of the game).
The report rules are a tricky case; it looks to me as though what’s going on is that, since the player’s identity changes in the carry out stage, the report rule doesn’t fire, because it’s not reporting the player being anymore. (Someone who’s better informed may be able to correct me.) I noticed that this does fire:
Report an actor being: say "You are now [the noun]."
But unfortunately it always says “You are now yourself,” which is not enlightening.
I would actually get around this by folding it into the carry out rule. Currently that would mean that you’d have to write something for each of your four cases, and I think it really would pay off to write a general rule for “carry out being” so you could just say “You are now [the noun]” before becoming the noun, which should produce nicer output; but I can’t actually get my attempt to compile now, so I won’t try to boss you around too much.