A, Buzz, C, D, E, Fizz, G A simple FizzBuzz using strings.
Given

1 word or phrase (string)
2 unique characters

Output
The word or phrase with each occurrence of the first character replaced with fizz and each of the second character replaced with buzz
Rules

The first letter in both Fizz and Buzz must remain capitalized
For the rest of the words fizz and buzz, you must match the case of the replaced character (if no case then keep lowercase)
If given characters are not in the phrase, output the original phrase

Test Cases
Given: Hello, h, l
Output: FIZZeBuzzBuzzo

Given: test, a, b
Output: test

Given: PCG rocks!,  , !
PCGFizzrocksBuzz

Given: This
Is
SPARTA!, 
, S
Output: ThiBuzzFizzIBuzzFizzBUZZPARTA!

Given: FizzBuzz, a, b
Output: FizzBUZZuzz

This is code-golf so the shortest code, in bytes, wins!
Note
Technically handling the newline case (This Is SPARTA!) is a part of the challenge. However, I will not void an answer for not including it, as it is very challenging or even impossible in some languages.
Python 3, 180 174 168 160 152 bytes



from sys import*
J=''.join
L=str.lower
s,a,b=J(stdin).split(', ')
print(J('FBFBiuIUzzZZzzZZ'[L(k)==L(b)::2][k!=L(k)::2]*(L(k)in L(a+b))or k for k in s))


This is just a more golfed version of Stephen's answer, in Python 3. This chips away 42% of his bytes. Python 2 would save one byte on the print, but such is the price of progress. This handles newlines properly.

Thanks to Blckknight for saving 8 bytes on input.