Вы можете использовать Grid.IsSharedSizeGroup в Parent ListBox, чтобы убедиться, что все ваши элементы имеют одинаковую ширину для первого столбца, как это
<ListBox ...
Grid.IsSharedSizeScope="True">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="GroupA"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
...
Для проблемы высоты изображения вы можете привязать высоту к ActualHeight родительской сетки с FallbackValue 1,0 (чтобы высота изображения не влияла на высоту сетки)
<Image Source="{Binding Logo, Converter={StaticResource BSConverter}}"
Grid.Row="0"
Grid.RowSpan="4"
Grid.Column="0"
Stretch="Uniform" SnapsToDevicePixels="True"
Height="{Binding RelativeSource={RelativeSource AncestorType=Grid},
Path=ActualHeight,
FallbackValue=1.0}"/>