wrapper div for widgets not showing with all widgets

You’re not echoing the wrapping divs. The register_sidebar only defines the div, but doesn’t render it. You need to extract the texts and echo them, like this:

public function widget( $args, $instance ) {    

    extract( $args );

    $title         = apply_filters( 'widget_title', $instance['title'] );

    echo $before_widget;

    if ( $title ) {
        echo $before_title . $title . $after_title;
    }

    ... do widgetty things ...

    echo $after_widget;

}