Well first of all, all I'm sayin' is I don't know how to do it directly, but have found a workaround, and I believe if you search the forum you will find other threads on the subject.
I think your characterization might be a little harsh. This is a feature of the Arduino build environment, not C++. Building sketches based on libraries is easy, in this system. Building libraries that cross-reference each other: I don't know how.
But don't give up. Your post says you've put the BMSerial library in the Arduino libraries/ folder in the usual place. Is there any reason you can't put it directly into your library folder and ship it with your library? I've found #includes work within the library's folder.
(I am still puzzling about why this would be causing a relocation error…)
-br