You get a bar of guard every other hit with one or two thorns equipped. If they stacked you'd get it every hit.
Guard doesn't work like that... 
When you start with no promotion, a level 1 character has 500 HP and the UI displays 5 green bars. When you have 600 HP, you see 6 bars, 7 bars for 700 HP and 8 bars for 800 HP. What happens when you get to 801 HP or 900 HP? Nothing, the UI still display 8 bars. What happens at 2000 HP with a Reaver? Same 8 bars. Does it mean you stopped at 800 HP? No, the UI simply works by "chunks" of 12.5% (8 chunks at 12.5% = 100%).
Guard works the same way. Each displayed "chunk" is a percentage of your Guard. For simplicity, let's say they each represent 5%, I don't know the real value in-game.
Example:
You gained 10 Guard (2 Savage Thorn x 5 Guard on Hit = 10) after your first hit. 10 Guard is bigger than no Guard, so you get at least 1 Guard chunk displayed, but it's usually less than 5% Guard so you don't need to display a second chunk because the first one covers enough. You hit a second time which adds 10 more Guard. Again, as long as you don't go over 5% Guard, there won't be another chunk displayed because what is displayed is enough to cover the 5% range. On your third hit, 10 more Guard, it passes the threshold of 5% and requires another chunk. The fourth hit will probably not pass 10% so you won't see a new chunk. etc.
What is important to remember is that Guard works in "chunks" while Barrier shows you exactly how much you have.
Those 2 daggers stack with Guard on hit, there's no doubt about it whatsoever.