I see two problems in your worksheet.
1. The distribution corresponding to the RV MIXTURE is not correctly defined. It should be:
pdf := (p,x) -> p*PDF(U1, x)*Heaviside(x+3) + (1-p)*PDF(U2, x)*Heaviside(x-1);
cdf := (p,x) -> int(pdf(p,y), y=-infinity..x);
Right, this was my first attempt but I got an error withe the MIXTURE := p -> RandomVariable(...) instruction.
I just copy-paste your code and I can't reproduce this error: probably I'd done some typo but the fact is, I came to use this "incorrect" definition of pdf and cdf for it did not return an error.
In any case your correction partially solves my problem (it remains the sampling of the whole "support")
Thank you very much
PS : I don't know, me neither, how to define the support of a rv. Just as I don't know how to define a custom sampler: the help page is not very instructive on this point.