I noticed that you have the Copy to Output Directory option set to "Do Not Copy."
Try changing it to either "Copy Always" or "Copy if newer" and see if that helps.
Update
I just wrote a quick sample app to try to figure this out.  It seems to work properly, so I'll post my code here hoping that it'll help.
<Grid>
  <Grid.Background>
    <ImageBrush x:Name="brush" AlignmentX="Left" ImageSource="images/have_the_dumb.jpg" Stretch="Fill" />
  </Grid.Background>
</Grid>
In the code-behind, I added some tracing code to see where the ImageBrush thinks its ImageSource is.
    public ImageDisplay()
    {
      Trace.Listeners.Add(new TextWriterTraceListener(@"c:\happyface.trace.log"));
      Trace.AutoFlush = true;
      InitializeComponent();
      Trace.WriteLine(String.Format("Image thinks it's in {0}", brush.ImageSource.ToString()));
    }
When running that in Debug mode, you should see a line written to the Output window (as well as to the *.trace.log file) with the URI where it thinks the image is located.
I ran it with the image in an images folder off the root of my solution.  I tried it with the image set as "Content" (with "Copy if newer") as well as "Resource" (with do not copy), and it ran successfully both times.
Hope this points you in the right direction.