I think, if you have to optimize this routine, I'd first try to fetch all parameter value entities you have to fetch for the batch and store them in a hashtable, with their PK as the key, so you can fetch them in 1 query, and then in your AppManager index into that hashtable.
This prevents you from performing roundtrips to the db a lot of times, for tiny pieces of information at a time. The thing that could be a problem is how to determine which parameter value entities to fetch. (I'm not sure how much there are, if there are a dozen or so, that's not a problem, but if there are hundreds of thousands to fetch, it might still be more efficient to simply go to the database every time, or batch 5 or 10 budget entity creations to save roundtrips.
You can also build the hashtable on the fly: when AppManager fetches parameter value entities, it first checks if it doesn't already has one in a hashtable. In 1.0.2004.2 (now in beta) I've added a Context cache for this, which can save you roundtrips to the db in single entity fetches this way.