Note 1: this sounds like a homework problem, so I'm going to try to give guidance toward the answer instead of just giving an answer outright.
Note 2: writing out the types of all the variables gets messy, so for the purposes of this answer,
x is a variable of type e,
p is a variable of type t, and
P is a variable of type ⟨e,t⟩.
So I would write the denotation of gray in your model as
λP.λx.[P(x) ∧ gray(x)].
If you want to combine this with be through function application, then one is going to need to be applied to the other. You can either apply be to gray, or apply gray to be. What type would be need in order to apply be to gray? What about to apply gray to be?
The next question is, what do you want the result to look like? It seems like the logical denotation of Julius is gray should be
Since we know the denotation of Julius is
julius, then in order to get
gray(julius), the denotation of is gray should be
λx.gray(x) (or just
gray if you prefer).
So, what can be combined with
λP.λx.[P(x) ∧ gray(x)] to create something equivalent to
Direct hint 1:
You're going to want to apply gray to be, not vice-versa. In other words, gray is the function and be is the argument. This means be should have a denotation of type ⟨e,t⟩.
Direct hint 2:
1 ∧ p is logically equivalent to
My solution (but try solving it yourself before revealing this):