it seems you are right in that it is a problem with the rectangle positions not changing as the sprite moves. Its original position is what is saved and this doesn't update. The Coin Collection is initialised as:
coinCount =
new CoinCollection((Content.Load<SpriteFont>("GameFont")), new Vector2(0,0), coin.SourceRect, player.SourceRect);
This goes and fetches the sourceRect from the Coin and Player classes, from a method which is called in the main Game.cs classes update method. What changes should I make to this to ensure the bounding rectangles are changed with every movement?