sb. is used as abbreviation for substantive, which grammarians use as a basic term form for noun. This is an old practice from the Latin days. n is used to denote proper nouns in such cases.
For example, in "What does “pull sb. out of the hat” mean?", sb. is used as a placeholder for a noun.
Your friend is wrong: the sentence is grammatically completely correct with the meaning you intended. There is no rule that requires the prepositional phrase "in my underpants" to modify the immediately preceding noun phrase "vegan cheese." Not even a "technical" one. It sounds like the kind of pseudo-rule that would be invented by someone under the misimpression that the rules of English syntax are designed to avoid ambiguity. In fact, this sentence, like many others, is just syntactically ambiguous. That's not a problem; many sentences are. Context makes it clear what you mean, in this case as in many others.
Here is a basic summary from "Linguapress.com Essential English Grammar" of where verb phrase modifiers (like the prepositional phrase "in my underpants") can go in an English sentence:
adverb phrases (groups of words, usually formed starting with a
preposition) can come in three possible places:
a) Before the
subject (Notably with short common adverbs or adverb phrases, or
sentence adverbs - see below) [...]
b1) After the object
(virtually any adverb or adverb phrase can be placed here) [...]
c)
In the middle of the verb group. (Notably with short common adverbs of
time or frequency)
The grammatical ambiguity arises from positioning rules like these and from the fact that prepositional phrases can be used to modify either noun phrases or verb phrases.
There was a recent Language Log post mentioning the issue of "prepositional phrase attachment": Annals of parsing
Two of the hardest problems in English-language parsing are
prepositional phrase attachment and scope of conjunction. For PP
attachment, the problem is to figure out how a phrase-final
prepositional phrase relates to the rest of the sentence — the classic
example is "I saw a man in the park with a telescope". For conjunction scope, the problem is to figure out just what phrases an instance of and is being used to combine.
The title of a recent article offers some lovely examples of the problems that these ambiguities can cause: Suresh Naidu and Noam Yuchtman, "Back to the future? Lessons on inequality, labour markets, and conflict from the Gilded Age, for the present", VOX 8/23/2016. The second phrase includes three ambiguous prepositions (on, from, and for) and one conjunction (and), and has more syntactically-valid interpretations than you're likely to be able to imagine unless you're familiar with the problems of automatic parsing.
See also section 1.2 "Ubiquitous Ambiguity" in "Analyzing Sentence Structure," a chapter from Natural Language Processing with Python by Steven Bird, Ewan Klein and Edward Loper.
Syntactic ambiguity is common in all natural languages. It's not feasible to avoid it when constructing a sentence in English, and trying to do so in general will provide no benefits to your writing. Obviously, it's a good idea to avoid ambiguous syntax when there is a real chance of confusion, but that's not the case with your sentence. Your friend obviously knew what you intended: he's deliberately misinterpreting your sentence.
Here's a similar sentence from the Declaration of Independence, which I would say is a document written in a formal style:
In every stage of these Oppressions We have Petitioned for Redress in
the most humble terms.
This doesn't mean they wanted redress that was in the most humble terms. It means they petitioned in the most humble terms for redress.
It is neither bad grammar nor bad style to use ambiguous grammatical structures.
Best Answer
In the UK "Pants" typically refers to underwear.
(Where it is also a slang term for "bad". As in "That's pants".)
In other parts of the world, notably the USA, "pants" refers to trousers.