I know for Census Tracts and Blocks there are relationship files, but what is the best way to match Census Block Groups from different decades to compare change?
There are block relationship files for 1990-2000 and 2000-2010 on the Census site. They can be summarized to give relationships at any higher level of aggregation, including block groups, tracts, and counties.
Unfortunately, for 1990-2000 these are not quantitative relationships: they only specify which parts of which blocks correspond, without providing numerical factors to adjust counts. For 2000-2010, separate land and water overlap amounts are provided, presumably as a basis for apportioning counts.
The Census Bureau is not concerned about comparability of Block Groups (BGs). You will most likely find that greatest comparability issues with them. When a Tract gets too big it is frequently split without regard to the BGs and any BGs affected are merged or realigned to satisfy population sampling thresholds.
Tracts will be easier to compare as well as blocks. The relationship files are provided because these are the most common/popular geographies used for analysis. If you're set on BGs, look at the block relationship files. The first digit of the block number is the block group number. So, e.g., block 10017 is in Block Group 1. You can assess the change in BGs by parsing out the first digit. If a block's number changes from 3035 to 10286 you know that it moved from BG 3 to BG 1. Using this knowledge, you might be able to reconstruct something comparable.
Most of them have different geographies from decade to decade which makes comparison inaccurate and/or misleading, unless you mean for only the block groups that are geographically identical?