When I want to include related data in a BPM email, I usually get it one of two ways.
a.) Use custom code to link to the related table(s) and populate callContextBpmData field(s).
b.) Invoke BPM Method and to populated a tableset variable.
The related data field(s) are then be available for you to include in your email.
There are many examples for custom code and invoking methods.
e.g. Data Directive Custom Code - E10 Newbie!
E10 BPM - invoke a BO Method
Note I used to prefer custom code because it is simpler but…
More recently, I use invoke “widgets” as I’ve been told that custom code is more likely to “break” in a future upgrade vs. “widgets” that are less like to require rework.