You have to use the :minlevel option on the #+INCLUDE: line to get b.org to start at the second level (the corollary is that you might as well not worry about the levels in b.org itself):
#+INCLUDE: b.org :minlevel 2
* I have another second level section
... but that is set through the #+INCLUDE directive in the ...
There is no obvious link with elpy package in your settings. Two small modifications of your code seems to be needed:
In your org file you need: #+BEGIN_SRC sh only.
In your init file, you need to add: (require 'ob-sh) to org configuration.
Then the html file is generated without problems.
I suggest also to upgrade to org 9.x