Ничего из написанного вами не понял, что у вас не так?
Пример:
var gulp = require('gulp'),
rigger = require('gulp-rigger');
var src = {
       html: ['./src/*.html']
    },
gulp.task('html', function() {
    gulp.src(src.html)
        .pipe(rigger())
        .pipe(gulpIf(env !== 'dev', minifyHTML()))
        .pipe(gulp.dest(outputDir))
        .pipe(connect.reload())
});
gulp.task('watch', function() {
    gulp.watch('./src/**/*.html', ['html']);
});
в папке 
src (app) создаем папку 
template, а которой файлы 
header.html, footer.html и другие...
Далее в своих файлах html прописываем всего лишь:
//= template/header.html//= template/footer.html
и вуаля, отключаем себе головную боль.