Share data between controllers with service
I think you're on the right track. Having a model object owned by a service and referenced from multiple scopes is good practice. Having more references to the same object in this was isn't a cost you should worry about.

However the example could be improved with clearer layout and more meaningful naming. I would suggest something like the following style.

angular.module('asideApp', ['ui.bootstrap', 'ngAside'])

  .service('AsideService', function ($timeout) {
    var model = {
      aside: null,
      text: null
    };

    function initAside(aside) { shared.aside = aside; }

    return {
      model: model,
      initAside: initAside
    };
  })

  .controller('MainController', function ($scope, $aside, AsideService) {
    $scope.shared = AsideService.model;

    $scope.openAside = function () {
      AsideService.initAside($aside.open({
          placement: 'right',
          templateUrl: 'PropertiesSidebar.html',
          size: 'lg',
          controller: 'AsideController'
        }));
    };
  })

  .controller('AsideController', function ($scope, AsideService) {
    $scope.shared = AsideService.model;
  });