Vivado: Block Design sub module
What you have to do is package sub modules as IP. Then you can use the IP as sub modules in a bigger design. The problem is that you can only package a whole block diagram. What you have to do is create a new block diagram, insert the blocks making a sub-module, package it as an IP and then add it to the main design. Repeat for all sub modules. 

Created IPs can be used several times in another block diagram.

This Explains the process in detail.